Autor Wątek: Seedowanie chmur na niebie  (Przeczytany 4282 razy)

Offline ziomber

  • Użytkownik

  • Zbanowany
# Maj 23, 2007, 20:39:43
nie wiem właśnie jak miksować kolory żeby to była skala szarości a nie czerwono zielono zotlo bialo fioletowo niebieskie

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline MoN

  • Użytkownik

# Maj 23, 2007, 21:10:07
Poki co chyba masz dodawanie tych chmur w blendingu ustawione... Ustaw zeby kolor byl jednoczesnie przezroczystoscia to im bielsze chmury tym gestrze beda i juz

Offline ziomber

  • Użytkownik

  • Zbanowany
# Maj 23, 2007, 22:57:47
Cytuj
Ustaw zeby kolor byl jednoczesnie przezroczystoscia to im bielsze chmury tym gestrze beda i juz

A niby jak? nie wiem jak to zrobić...
« Ostatnia zmiana: Maj 23, 2007, 23:00:17 wysłana przez ziomber »

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Maj 24, 2007, 13:00:54
Spróbuj zamiast addytywnie to rysować je z blendingiem BLENDOP = MAX - może to pomoże?

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Maj 24, 2007, 13:14:38
A niby jak? nie wiem jak to zrobić...
Wypełnić odpowiednio kanał alpha tekstury. :)

maxest

  • Gość
# Maj 24, 2007, 13:24:14
Jak jestesmy jeszcze przy tych chmurach to przy okazji chcialbym sie dopytac jak mialaby wygladac animacja chmur zrobionych przy pomocy szumu Perlina? Wyczytalem w "Prog. gier w DX" zeby utworzyc dwa szumy, po czym powoli wykonywac zmiane jedengo szumu w drugi - czy taka interpolacja ta dobry efekt?

Offline ziomber

  • Użytkownik

  • Zbanowany
# Maj 24, 2007, 14:14:28
Cytuj z: ziomber  Wczoraj o 21:57:47
A niby jak? nie wiem jak to zrobić...
Wypełnić odpowiednio kanał alpha tekstury.


EEEEEEEEE czyli game making tools MODE ON tak to nazwe... Znowu pisać coś innego zamiast silnika bleeee

Swoja droga jak bitmapa 24 bitowa jest w BGR to jak to będzie z kanałem ALPHA ABGR czy BGRA ? BO nie wiem gdzie ten ostatni bit wrzucić :/
« Ostatnia zmiana: Maj 24, 2007, 14:17:51 wysłana przez ziomber »

maxest

  • Gość
# Maj 24, 2007, 14:24:22
Z reguly zawsze stosuje sie oznaczenie RGBA, w bitmapach jest tylko zamieniony kolor niebieski z czerwonym czyli w tym wypadku masz BGRA. Swoja droga wie ktos dlaczego jest to tak odwrotnie zrobione?

Offline MoN

  • Użytkownik

# Maj 24, 2007, 14:30:38
Pewnie cos z tych samych klimatow co odwrocenie obrazka - w bitmapach calosc jest obrocona czy tez odbita, bo sie ponoc matematycy uparli, zeby bylo "poprawnie" i w zwiazku z tym pierwszy piksel odpowiadal punktowi (0,0) na normalnie zorientowanej plaszczyznie kartezjanskiej zas obrazek znajdowal sie w pierwszej cwiartce.

maxest

  • Gość
# Maj 24, 2007, 15:19:32
Ano fakt - i przez to jak ladujemy sobie bitmapke z pliku (recznym sposobem, po kolei kazde bajty bierzemy) to teksel znajdujacy sie w lewym gornym rogu ma wsp. [0, 1]. W takim tez razie funkcja D3DXCreateTextureFromFile chyba podczas ladowania obrazka automatycznie go odwraca, bo w ten sposob ladowany obrazek swoj lewy gorny rog ma w [0, 0]
Tylko dlaczego te kanaly R i B sa zamienione? :P

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Maj 24, 2007, 17:06:25
Ano fakt - i przez to jak ladujemy sobie bitmapke z pliku (recznym sposobem, po kolei kazde bajty bierzemy) to teksel znajdujacy sie w lewym gornym rogu ma wsp. [0, 1]. W takim tez razie funkcja D3DXCreateTextureFromFile chyba podczas ladowania obrazka automatycznie go odwraca, bo w ten sposob ladowany obrazek swoj lewy gorny rog ma w [0, 0]
Zarówno w OpenGL, jak i w Direct3D tekstury ładuje się dokładnie tak samo - kolejnymi wierszami, zaczynając od teksela (0,0). To, czy (0,0) będzie dla Ciebie lewym górnym, czy lewym dolnym rogiem zależy wyłącznie od Ciebie, ale wtedy będziesz musiał załadować tą teksturę w odpowiedni sposób. :)

Tylko dlaczego te kanaly R i B sa zamienione? :P
Nic nie jest zamienione. Najbardziej popularną reprezentacją koloru jest obecnie A8R8G8B8, czyli 32-bitowa liczba 0xAARRGGBB. Domyślam się, że chodzi Ci w tym momencie o OpenGL i funkcje podające dane obrazu. W OpenGL podajesz kolejność bajtów, czyli dla formatu kolor 0xAARRGGBB będzie to BGRA, co wynika z kolejności w jakiej na komputerach PC są zapisywane liczby (od najmłodszego bajtu). Na innej platformie, żeby uzyskać ten sam efekt może być konieczne podanie ARGB (gdy liczby są zapisywane od najstarszego bajtu). :)

Offline ziomber

  • Użytkownik

  • Zbanowany
# Maj 24, 2007, 18:03:27
Krzysiek Ka wlasnie mi podal rozwiazanie ładowania lightmap z bsp :0


BTW znalazlem u siebie w kodzie coś takiego:

wiec na pewno BGRA?

procedure power_putpixel32(var bmp : tbitmap; x,y : integer; r,g,b,a : byte); overload;
var
  P : PByteArray;
 u : integer;
begin
u := x*3;
with bmp do
begin
P:=ScanLine[y];
P[u]:=a;
P[u+1]:=b;
P[u+2]:=g;
P[u+3]:=r;
end;
end;
« Ostatnia zmiana: Maj 24, 2007, 18:53:09 wysłana przez ziomber »

maxest

  • Gość
# Maj 24, 2007, 20:54:15
Cytuj
wiec na pewno BGRA?
Jesli idzie o zwykle bmp - tak :)

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Maj 25, 2007, 00:19:28
Cytuj
wiec na pewno BGRA?
Jesli idzie o zwykle bmp - tak :)
Jakaś nowa wersja formatu BMP ze wsparciem dla kanału alpha? ;)

maxest

  • Gość
# Maj 25, 2007, 01:09:00
Heh, prawie :D
Dobra, jeszcze raz - dane w bmp sa zapisane tak:

NAGLOWEK - jakies 54-56 bajtow czy iles tam a potem leca dane...
BGRBGRBGR...
...