Autor Wątek: [opengl]G-buffer i deferred lighting  (Przeczytany 9057 razy)

Offline Dab

  • Moderator
    • blog

# Sierpień 01, 2010, 14:07:31
Cytuj
Myk polega na tym ze w OpenGL spokojnie mozna zrobic Deferred z MSAA na Windows XP, czy tez na karcie 8800. Uzywajac DirectX, nawet na Vista/7 sie nie da. No ale pewnie, lepiej powykrecac kota ogonem w nadziei ze jakos wyjdzie na wasze.
Super, cieszy mnie że wyrażasz swoją opinię. I nie mam z tym żadnego problemu - wszyscy mamy opinie. Mierzi mnie to, że wyrażasz swoją opinię jako fakt i żeby utwierdzić czytelnika w przekonaniu, że to jest fakt (choć nim nie jest) dorabiasz do tego teorię z gatunku spiskowych. Mnie irytują rozszerzenia w OGL. Ale nie piszę, że to kretyńskie rozwiązanie "i każdy wie, że tak jest". Bo to jest opinia (z gruntu rzeczy bezwartościowa) a nie fakt.

To nie jest opinia. To jest kilka b. prostych faktów.

F1: "Nie można zrobić DS + MSAA na dowolnej karcie, używając dowolnego DX i systemu Win XP"
F2: "Nie można zrobić DS + MSAA na kartach NV "10.0", używając dowolnego DX i dowolnego systemu"
F3:" Można zrobić DS + MSAA na każdej karcie "10.0+" używając OpenGL i dowolnego systemu"

Co tu jest moją opinią?

Nomen omen, explicit multisample jest w OpenGL dostępny jako składnik bazowy w 3.2 a nie jako rozszerzenie.

Widzisz, w Matriksie żyje nie ten, kto sprawę zna, a ten, kto na temat motywów spekuluje, posiłkując się swoimi antypatiami. Zgadnij kto jest kto? :)

No tak, zapomnieliśmy że ConayR to znawca życia, DirectX-a i autostrad. Ponoć od czasu kiedy zobaczył na ulicy Steva Ballmera przestawia się na forach jako ekspert ds. Microsoftu. Pozdrawiamy. :)

No i mimo kolejnej porcji napinania się, deferreda z MSAA dalej nie macie :D
« Ostatnia zmiana: Sierpień 01, 2010, 14:15:02 wysłana przez Dab »

Offline Mr. Spam

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

Offline KriS

  • Użytkownik
    • KriS

# Sierpień 01, 2010, 15:26:25
F1: "Nie można zrobić DS + MSAA na dowolnej karcie, używając dowolnego DX i systemu Win XP"
F2: "Nie można zrobić DS + MSAA na kartach NV "10.0", używając dowolnego DX i dowolnego systemu"
F3:" Można zrobić DS + MSAA na każdej karcie "10.0+" używając OpenGL i dowolnego systemu"

IMHO reguła F2 ma jeden wyjątek - Starcraft 2.

Offline Dab

  • Moderator
    • blog

# Sierpień 01, 2010, 16:07:52
Z tego co się orientuję to Batman też, tylko że używając nie DX a NVAPI czyli zamkniętych rozszerzeń NVidii.

Offline skoti

  • Użytkownik

# Sierpień 01, 2010, 16:32:59
Napisałem już co jest przyczyną. Brakiem chęci można określić prośbę o pisanie tego samego ponownie.
Tą przyczyną według Ciebie jest:
A że DX10 nie jest wspierany na systemie operacyjnym który... nie jest wspierany - zaiste, niecodzienna rzecz. ;)
Jeśli tak to jest to bzdura jakiej dawno nie słyszałem - jak wydawali Dx10 WinXP był wspierany.

A może chodzi Ci o to:
Czyli z jednej strony motywację finansową akceptujesz, z drugiej motywację finansową odrzucasz, tak? :) W okolicach RTM Visty podjęto decyzję o zakończeniu klasycznego wsparcia dla XP i przejściu do Extended Support dla OEM. XP już wiele miesięcy wcześniej zostało całkowicie oddane w ręce ludzi od Windows Sustained Engineering, co w praktyce oznacza że nikt kto byłby w stanie wprowadzić poważniejsze zmiany w XP nie pracował już przy tym systemie. W miarę wcześnie stało się też jasne, że należy przysiąść przy Vista SP1 (nie żeby przy Viście się obijano, ale to historia na inny wątek). Mając ograniczone zasoby (a dobrze wiesz, że w każdej firmie zasoby są ograniczone i jeśli robisz A to nie robisz B) podjęto decyzję o skupieniu się na Viście SP1 i Windows 7. O ile sportowanie DX10 do XP nie jest fizycznie niemożliwe (to "tylko" port DX10 i WDDM) o tyle oznaczałoby to kompletne wstrzymanie prac na tym polu w Viście i Win7. Coś za coś. Inwestowanie w system, który się chce uśmiercić nie jest specjalnie udanym finansowo planem, prawda? Jak Ty byś rozwiązał w takiej sytuacji problem ograniczonych zasobów? (dodam, że w tym samym czasie z zespołu DX odeszło kilka osób, m.in. do Valve)
W okolicach RTM Visty DX10 był już dawno gotowy (więc już dawno powinien być gotowy dla XP, gdyby miało tam być w momencie tej domniemanej decyzji), a dodatkowo nawet bez tego nie trzeba żadnych zmian w systemie robić, więc to powód wzięty z z sufitu.
Wsparcie DX10 dla XP jest fizycznie możliwe i wcale nie oznaczałoby kompletnego wstrzymania prac nad vista/7... ale masz rację, że nie chcieli inwestować w system który chcieli uśmiercić (co więcej chcieli go właśnie uśmiercić nie dając Dx10, więc dodanie Dx10 byłoby dla MS bardzo złym pomysłem).
Jednak np. w przypadku DX11, gdzie DxCompute ma dużo popularniejszą konkurencję (CUDA czy OpenCL) i ograniczenie tylko do Vista i 7 oznaczałoby brak zainteresowania DxCompute, to potrafili dać dostęp dla XP, dodając shadery obliczeniowe z nowym HLSL (czego nie zrobili dla Geometry shaderów), mimo, że XP już nie był wspierany (w przeciwieństwie do czasu wyjścia Dx10).

IMHO reguła F2 ma jeden wyjątek - Starcraft 2.
To nie jest wyjątek - tu AA nie zajmuje się sprzęt, a software (dodatkowy shader odpowiedzialny za AA jako postprocess zapewne) i tak to jest możliwe nawet z dx9 i wcześniejszych ;p

Offline KriS

  • Użytkownik
    • KriS

# Sierpień 01, 2010, 20:15:08
Z tego co się orientuję to Batman też, tylko że używając nie DX a NVAPI czyli zamkniętych rozszerzeń NVidii.

Hmm, może coś przegapiłem, ale nie widzę aby NVAPI udostępniało tego typu funkcjonalność.

IMHO reguła F2 ma jeden wyjątek - Starcraft 2.
To nie jest wyjątek - tu AA nie zajmuje się sprzęt, a software (dodatkowy shader odpowiedzialny za AA jako postprocess zapewne) i tak to jest możliwe nawet z dx9 i wcześniejszych ;p

Jeżeli możliwe by było shaderem zrobienie takiego AA jak w Starcrafcie to nikt by MSAA nie potrzebował :).

Offline skoti

  • Użytkownik

# Sierpień 01, 2010, 23:02:19
Jeżeli możliwe by było shaderem zrobienie takiego AA jak w Starcrafcie to nikt by MSAA nie potrzebował :).
Nikt poza tymi którym zależy na większej wydajności ;p.

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Sierpień 02, 2010, 11:45:26
Nikt poza tymi którym zależy na większej wydajności ;p.
MSAA + Deferred Shading nie brzmi, jak zwiększenie wydajności. ;)

Offline ConayR

  • Użytkownik

# Sierpień 03, 2010, 00:45:08
Co tu jest moją opinią?
Tu - nic. Pisanie, że to spisek MS jest opinią.

Cytuj
Nomen omen, explicit multisample jest w OpenGL dostępny jako składnik bazowy w 3.2 a nie jako rozszerzenie.
I?

No tak, zapomnieliśmy że ConayR to znawca życia, DirectX-a i autostrad. Ponoć od czasu kiedy zobaczył na ulicy Steva Ballmera przestawia się na forach jako ekspert ds. Microsoftu. Pozdrawiamy. :)
Ekspertem nie jestem, ale w przeciwieństwie do Ciebie pracowałem w Core Operating Systems Division i znam z pierwszej ręki historie współpracy z różnymi vendorami (sam odpowiadałem za komponent platformowy, który wymagał interakcji z zewnętrznymi firmami). A Ty nie. To jest naczelna różnica różnica między "znajomością historii komponentu" a "snuciem przypuszczeń na podstawie sympatii i antypatii", nie sądzisz? :)

Jeśli tak to jest to bzdura jakiej dawno nie słyszałem - jak wydawali Dx10 WinXP był wspierany.
Może napisałem niejasno - decyzja o zakończeniu wsparcia dla XP była kilkukrotnie przesuwana. Poza tym pozostaje problem przekazania prac do WinSE, którego zdajesz się nie dostrzegać.

Cytuj
W okolicach RTM Visty DX10 był już dawno gotowy (więc już dawno powinien być gotowy dla XP, gdyby miało tam być w momencie tej domniemanej decyzji), a dodatkowo nawet bez tego nie trzeba żadnych zmian w systemie robić, więc to powód wzięty z z sufitu.
Nie wiem, czy dobrze rozumiem: twierdzisz, że XP nie wymaga zmian w systemie by oferować DX10, tak? Jeśli tak, ponownie napiszę to co napisałem poprzednio: mylisz się. DX10 powstał na bazie nowego jednolitego frameworku dla sterowników, WDDM. Konieczny byłby albo port WDDM do XP albo warstwa tłumacząca. Tak czy owak, potrzeba do tego sporego nakładu sił.

Cytuj
Wsparcie DX10 dla XP jest fizycznie możliwe i wcale nie oznaczałoby kompletnego wstrzymania prac nad vista/7... ale masz rację, że nie chcieli inwestować w system który chcieli uśmiercić (co więcej chcieli go właśnie uśmiercić nie dając Dx10, więc dodanie Dx10 byłoby dla MS bardzo złym pomysłem).
Przecież napisałem, że jest fizycznie możliwe. Ale jest logistycznie absurdalne trudne. I tak, konkretny team musiałby co najmniej okroić zakres prac w ramach Vista SP1/Win7, gdyby podjęto się w/w portu.

Cytuj
Jednak np. w przypadku DX11, gdzie DxCompute ma dużo popularniejszą konkurencję (CUDA czy OpenCL) i ograniczenie tylko do Vista i 7 oznaczałoby brak zainteresowania DxCompute, to potrafili dać dostęp dla XP, dodając shadery obliczeniowe z nowym HLSL (czego nie zrobili dla Geometry shaderów), mimo, że XP już nie był wspierany (w przeciwieństwie do czasu wyjścia Dx10).
Znowu nie wiem czy wiem o czym piszesz. DirectCompute na XP? Gdzie?
« Ostatnia zmiana: Sierpień 03, 2010, 00:46:49 wysłana przez ConayR »

Offline skoti

  • Użytkownik

# Sierpień 03, 2010, 01:00:15
Nie wiem, czy dobrze rozumiem: twierdzisz, że XP nie wymaga zmian w systemie by oferować DX10, tak? Jeśli tak, ponownie napiszę to co napisałem poprzednio: mylisz się. DX10 powstał na bazie nowego jednolitego frameworku dla sterowników, WDDM. Konieczny byłby albo port WDDM do XP albo warstwa tłumacząca. Tak czy owak, potrzeba do tego sporego nakładu sił.
Napisanie wrapper'a wcale nie byłoby takim sporym problemem... wręcz niezauważalnym przy pracy wykonanej nad dx10.

Znowu nie wiem czy wiem o czym piszesz. DirectCompute na XP? Gdzie?
Czyli jednak nie ma? Na pewno przez jakiś czas był (przed wydaniem dx11, nVidia wydała sterownik dla zarejestrowanych użytkowników z DxCompute (korzystającym z Cuda) działający pod XP - dalej sprawy nie badałem bo mało mnie DxCompute obchodzi skoro mam OpenCL).

Offline ConayR

  • Użytkownik

# Sierpień 03, 2010, 01:06:24
Napisanie wrapper'a wcale nie byłoby takim sporym problemem... wręcz niezauważalnym przy pracy wykonanej nad dx10.
Zgadujesz, nie wiesz tego. Bardzo łatwo ocenia się pracę innych jako "łatwa".

Czyli jednak nie ma? Na pewno przez jakiś czas był (przed wydaniem dx11, nVidia wydała sterownik dla zarejestrowanych użytkowników z DxCompute (korzystającym z Cuda) działający pod XP - dalej sprawy nie badałem bo mało mnie DxCompute obchodzi skoro mam OpenCL).
Chyba coś Ci się pomyliło. Była (i jesT) CUDA, która współpracuje zarówno z OGL jak i DX. Pierwsze słyszę, żeby było jakieś rozwiązanie first party do tego celu (co nie znaczy, że nie istniało; wydaje mi się to jednak skrajnie nieprawdopodobne, bo do CS są odpowiednie funkcje w DX API, których w DX9 nie ma).

Offline skoti

  • Użytkownik

# Sierpień 03, 2010, 01:51:07
Chyba coś Ci się pomyliło. Była (i jesT) CUDA, która współpracuje zarówno z OGL jak i DX. Pierwsze słyszę, żeby było jakieś rozwiązanie first party do tego celu (co nie znaczy, że nie istniało; wydaje mi się to jednak skrajnie nieprawdopodobne, bo do CS są odpowiednie funkcje w DX API, których w DX9 nie ma).
Cuda jest od dawna - za to Dx11 wychodził na raty (wcześniej wszystko poza grafiką, razem z dx compute, a później dodano grafikę i wydano dx11). W czasie pomiędzy tym nVidia wydała sterownik z Dx Compute (i chyba własny nagłówek z jego API, bo biblioteka to był wapper na libcuda (zresztą tak jest zdaje się do dziś tak jak z OpenCL)).

Offline ConayR

  • Użytkownik

# Sierpień 03, 2010, 02:14:19
Cuda jest od dawna - za to Dx11 wychodził na raty (wcześniej wszystko poza grafiką, razem z dx compute, a później dodano grafikę i wydano dx11). W czasie pomiędzy tym nVidia wydała sterownik z Dx Compute (i chyba własny nagłówek z jego API, bo biblioteka to był wapper na libcuda (zresztą tak jest zdaje się do dziś tak jak z OpenCL)).
DX11 wychodził na raty? I jak coś od nVidii można nazwać DirectCompute?

Offline skoti

  • Użytkownik

# Sierpień 03, 2010, 02:45:28
DX11 wychodził na raty? I jak coś od nVidii można nazwać DirectCompute?
Nie pamiętam dokładnie kiedy (nawet na warsztacie chyba był link i info). MS dało aktualizację dx10 i tam dali dokumentację i przykłady kodów źródłowych dx11 (rzeczy nie dotyczących grafiki) - na podstawie tej dokumentacji nVidia przygotowała sterownik.

Offline ConayR

  • Użytkownik

# Sierpień 03, 2010, 03:00:42
DX11 wychodził na raty? I jak coś od nVidii można nazwać DirectCompute?
Nie pamiętam dokładnie kiedy (nawet na warsztacie chyba był link i info). MS dało aktualizację dx10 i tam dali dokumentację i przykłady kodów źródłowych dx11 (rzeczy nie dotyczących grafiki) - na podstawie tej dokumentacji nVidia przygotowała sterownik.
Materiały niezbędne do napisania sterownika nie są częścią DX SDK. Być może nVidia wydała coś co pozwalało na uruchomienie CS, ale nie było to DirectCompute.

Offline MrKaktus

  • Użytkownik

# Sierpień 03, 2010, 20:52:17
Na miejscu moderatora skasował bym 5 ostatnich stron z tego tematu.
Jedna strona rozmowy na temat i 5 zapuwania sie co jest lepsze, a jak ktoś chciał poczytać o G-buforze to stracił tylko czas.