Polskie Forum Użytkowników GIMP-a

Hyde zone => [Archiwum] Pomocna dłoń - GIMP => Wątek zaczęty przez: anders211 on 15.02.2014, 10:21:06



Tytuł: [ROZ] Jak zmienić nazwę kanału?
Wiadomość wysłana przez: anders211 on 15.02.2014, 10:21:06
Witam,
Mam obrazek jako heightmapę .raw. Jako że używam gimpa 2.6.12 to nie da rady go otworzyć w gimpie, wobec czego otwieram w photoshopie i zapisuję jako .bmp. No i potem taki obrazek .bmp otwieram już w gimpie. Pomimo że jest format .bmp to obrazek ma 1 kanał o nazwie "Szary". I teraz chciałbym z tego zrobić format RGB (czyli mieć kanał "Czerwony", "Zielony", "Niebieski") i przechowywać to co jest aktualnie w kanale "Szary" w kanale "Czerwony" a reszta kanałów niech ma na razie ustawiony kolor "Czarny".


Tytuł: Odp: jak zmienić nazwę kanału
Wiadomość wysłana przez: be@ on 15.02.2014, 10:26:40
Prawdopodobnie obrazek jest w trybie "Odcienie szarości". Sprawdź: Obraz -> Tryb i zmień na RGB.


Tytuł: Odp: jak zmienić nazwę kanału
Wiadomość wysłana przez: anders211 on 15.02.2014, 10:53:55
Masz może jakiegoś hinta na to jak najlepiej zrobić aby to co jest czarne miało kolor R=255,G=0,B=0 no a to co białe to R=0,G=0,B=255.

http://www.fotosik.pl/pokaz_obrazek/pelny/02b0c7367d272366.html
http://www.fotosik.pl/pokaz_obrazek/pelny/80d16a0c6433c507.html

Co ja tutaj robię to po prostu tekstura która tworzę to taka jakby maska. Następnie mam 3 inne tekstury. I takie 4 tekstury ładuję do mojej gry. No i mam shader w mojej grze który rozkłada na heightmapie tekstury tak że ładnie teran się rendreuje, góry mają ziemię, niziny trawę i są też ładne przejścia pomiędzy teksturami.

    float3 texColor0 = tex2D(Sampl0, tiledCoord).rgb; //trawa
    float3 texColor1 = tex2D(Sampl1, tiledCoord).rgb; //jakas inna trawa
    float3 texColor2 = tex2D(Sampl2, tiledCoord).rgb; //ziemia
    float3 terrainMap = tex2D(SamplBlendMap, nonTiledCoord).rgb; //maska nad którą pracuję w gimpie
   
    float inverse = 1.0f / (terrainMap.r + terrainMap.g + terrainMap.b);
   
    texColor0 *= terrainMap.r * inverse;
    texColor1 *= terrainMap.g * inverse;
    texColor2 *= terrainMap.b * inverse;

    float3 finalColor = (texColor0 + texColor1 + texColor2)


Tutaj przykład jak ktoś ładnie sobie utworzył maskę dla terenu.
http://www.fotosik.pl/pokaz_obrazek/pelny/9a5ccf0a6145c8a7.html
Ciekawe jak on to robił, pewnie punktem wejścia też dla niego była heightmapa.


Tytuł: Odp: jak zmienić nazwę kanału
Wiadomość wysłana przez: be@ on 15.02.2014, 11:15:47
Ustaw sobie w przyborniku jako kolor pierwszoplanowy ten R=255,G=0,B=0 i jako drugoplanowy: R=0,G=0,B=255, wybierz gradient o nazwie: Kolor pierwszoplanowy na kolor tła (pierwszy w palecie, powinien być domyślnie), a następnie zastosuj: Kolory -> Odwzorowania -> Odwzorowanie gradientu.
A jeśli chodzi Ci o mapę wysokości, to do tego jest specjalny gradient four3D (w załączniku).


Tytuł: Odp: jak zmienić nazwę kanału
Wiadomość wysłana przez: anders211 on 15.02.2014, 12:17:41
OK jest zamierzony efekt. Dzięki. A jak ten gradient wysokości zainstalować, bo chciałem zobaczyć co to jest.


Tytuł: Odp: jak zmienić nazwę kanału
Wiadomość wysłana przez: be@ on 15.02.2014, 12:21:18
Tak jak inne gradienty. Rozpakuj i wrzuć do folderu gradients w katalogu użytkownika.


Tytuł: Odp: jak zmienić nazwę kanału
Wiadomość wysłana przez: anders211 on 16.02.2014, 08:52:02
Troche nie rozumiem jak niby ten gradient mógłby pomóc w kształtowaniu terenu.


Tytuł: Odp: jak zmienić nazwę kanału
Wiadomość wysłana przez: be@ on 16.02.2014, 09:02:12
Nie wiem czy akurat będzie miał on zastosowanie w Twoim projekcie. Ten gradient pobrałam razem ze skryptem do tworzenia obrazków 3d. Im jaśniejszy i cieplejszy odcień, tym większa wysokość wypukłości. Odwzorowujesz go tak samo jak ten czerwono-niebieski. Pokazałeś wcześniej taką kolorową mapkę więc pomyślałam, że może właśnie o to chodzi.