[OpenGL] Światła punktowe

0

user image

Jak można stworzyć taki efekt ALE

ja bym wolal zeby ktoś mi powiedział jak mam ustawić koordynaty dla każdego prymitywu zeby taki efekt uzyskac w zaeznosci od odleglosci i pozycji swiatla od sciany, bo te przyklady w opengl to nie za bardzo na moja glowe chyba ze ktos moze mi wytlumaczyc go :x

0

Przeciaż wszystko widać.
Niech ten róg ma współrzędne (0, 100, -100),
wtedy lampa znajduje się w p-cie (10, 90, -90).

Musisz jeszcze ustawić współczynniki rozpraszania:
GL_CONSTANT_ATTENUATION
GL_LINEAR_ATTENUATION
GL_QUADRATIC_ATTENUATION

Domyślnie jest (1,0,0), należy zwiększyć Linear i/lub quadratic.

0

co? co widac gowno widac moim skromnym zdaniem nie czaje tez co ty chcesz mi powiedziec...

0

czesc, jesli uzywasz wbudowanych swiatel opengl (czyli glEnable(GL_LIGHTING) ) to odradzam Ci tego bo:

  1. jest ograniczenie max 8 swiatel
  2. obliczeniowo jest to bardzo czasochlonne
  3. w ogóle te z ogla sa per-vertex wiec nie sa ladne nie wiem jakie sa na tym obrazku bo moga to byc tez per-vertex (bo akurat swiatlo jest blisko wierzcholkow i rozklad taki da sie uzyskac)

Jesli zalezy Ci na swiatlach punktowych statycznych to polecam lightmapy (najlepiej samemu je generowac ), wowczas masz ladny rozklad i zgodny z fizyka (luminacja jest wprost proporcjonalna do odwrotnosci kwadratu odleglosci) no i mozesz miec cienie i to miekkie :) tyle ze tez statyczne

Jesli natomiast zalezy ci na swiatlach dynamicznych to proponuje per-pixel tyle ze cienie musisz robic osobno i swiatla osobno ale efekt bedzie dobry:)

Pozdr. skalniak

0
skalniak napisał(a)

czesc, jesli uzywasz wbudowanych swiatel opengl (czyli glEnable(GL_LIGHTING) ) to odradzam Ci tego bo:

  1. jest ograniczenie max 8 swiatel
  2. obliczeniowo jest to bardzo czasochlonne
  3. w ogóle te z ogla sa per-vertex wiec nie sa ladne
  1. Jest MINIMUM 8 lamp - zależy to od karty graficznej
  2. sprzętowo zasuwa szybko, a na starym szmelcu te 8 jest emulowane i wtedy marnie jest.
  3. oświetlenie jest liczone tylko raz dla każdego trójkąta (fragmentu),
    aby było 'gładkie' trójkąty te należy dzielić na mniejsze.

Komurkowy - proponuję, aby mama przeczyta ci opis funkcji glLight.

0
gitara napisał(a)
  1. Jest MINIMUM 8 lamp - zależy to od karty graficznej
  2. sprzętowo zasuwa szybko, a na starym szmelcu te 8 jest emulowane i wtedy marnie jest.
  3. oświetlenie jest liczone tylko raz dla każdego trójkąta (fragmentu),
    aby było 'gładkie' trójkąty te należy dzielić na mniejsze.

ad 1. bez znaczenia wazne ze jest ograniczenie a tego nikt nie chce
ad 2. szybko ale co z tego jak efekt jest kiepski w porownaniu do obciazenia obliczeniowego
ad 3. jak zastosujesz lightmapy to tez raz liczysz i masz swietny zanik luminacji a jak oswietlenie per-pixel to w zaleznosci nie od ilosci swiatel w scenie tylko od ilosci swiatel oswietlajacych dana powierzchnie a poza tym dzielenie trojkatow na male ma sens tylko w jednym przypadku: gdy robisz per-pixel na starszych kartach (bez shaderow)

Pozdr. skalniak

0
  1. Ograniczenie jest na marnym sprzęcie, a teraz to się nie liczy - nikt nie robi gier na s3, tnt2, itp.
  2. Sprzęt po to jest, aby go obciążać
  3. Takie statyczne oświetlenie - raz obliczone - w tym przypadku wystarczy (ściana stoi), ale gdyby tam jakiś obiekt się poruszał, to blada dupa z tego wyjdzie...
0
gitara napisał(a)
  1. Ograniczenie jest na marnym sprzęcie, a teraz to się nie liczy - nikt nie robi gier na s3, tnt2, itp.
  2. Sprzęt po to jest, aby go obciążać
  3. Takie statyczne oświetlenie - raz obliczone - w tym przypadku wystarczy (ściana stoi), ale gdyby tam jakiś obiekt się poruszał, to blada dupa z tego wyjdzie...

ad1. robi sie:) lightmapki i wyglada to lepiej i szybciej niz na oglowskich (ktore czy chcesz cyz nie sa dynamiczne)

ad2. wlasnie a zatem czemu nie zrobic per-pixel? tylko babrac sie w oglowskich swiatelkach ktore sa brzydkie w porownaniu do per-pixel

ad3. owszem wyjdzie blada dupa dlatego obiekty nie oswietla sie przy uzyciu lightmap :)

0

ja tylko chce znalezc wspolzedne punktu na tych scianach znajac ich wierzcholki?

Aha i to na obrazku to trzy sciany z kropeczka i z trzema o\brazkami zblendowanymi na scianach. potrzebuje znalezc koordynaty dla tego wlasnie zblendowanego obiektu :0

0

powiedz czego maja byc te koordynaty?? tzn domyslam sie ze luminacji lub lightmap tak ?

Pozdr. skalniak

0

masz se teksturke ktora oswietla jakis primityw czyli takie koleczko biale na dodatek i raz rysuje teksture i na do blenduje sobie ta teksturke i w zaleznosci jak tan priomutywm ma np. 3 vertexy to jak znalezc koordytnat dla kazdego primytywu zeby bylo wszystko ladnie :D:D dopiusane: poprawcie to :-0

0

czesc
milej lekturki: http://www.ronfrazier.net/apparition/index.asp?appmain=research/advanced_per_pixel_lighting.html

tam jest wszystko opisane :)

Pozdr. skalniak

0

:U

1 użytkowników online, w tym zalogowanych: 0, gości: 1