Šta je novo?

Doom3 i Pixel Shaderi

  • Začetnik teme Začetnik teme 3MaJ
  • Datum pokretanja Datum pokretanja

3MaJ

Čuven
Učlanjen(a)
06.04.2001
Poruke
283
Poena
619
Ja tu nešto ne kapiram. Svi pričaju da OpenGL ne podržava PS. A s druge strane Carmack se izuzetno pohvalno raspisao o istima kada se pojavio GF3. Hoće li ih biti ili neće? Nije valjda lud da napiše igricu bez njih, kad su tako značajan pomak...
 
3MaJ je napisao(la):
Ja tu nešto ne kapiram. Svi pričaju da OpenGL ne podržava PS. A s druge strane Carmack se izuzetno pohvalno raspisao o istima kada se pojavio GF3. Hoće li ih biti ili neće? Nije valjda lud da napiše igricu bez njih, kad su tako značajan pomak...

Pa naravno da hoce! Evo ti demo svi vrte na forumu.
BTW OGL ne podrzava Pixel Shadere ??? 🙂
 
Ljudi... Zasto mislite da OpenGL ne podrzava Pixel Shadere.. Pixel Shader je program koji se izvrsava interno u procesoru... Moze biti napisan u C-u ili negde drugo, a implementiran i kroz OGL, ako treba... Fora je samo sto OGL1.3 NEMA _arb koje podrazumevaju PS, ali ih programer moze definisati (_ext)... JC sigurno moze da ocekuje da ce nVidia podrzati te ekstenzije kroz drajvere i na GF3 i GF4 karticama, bar dok ne stigne OGL2.0 koji ce ih imati usvojene kao _arb. Zbog toga su se neki *pa i sam Anand* zbunili kada su pisali da u Doom III ima DX koda... Ne! CIst OpenGL...! Doom III ce od MS API-ja videti samo Direct Sound i neke Draw funkcije za menije i overlej, mozda...
 
Hvala na linku.
Malo sam dosadan, izvinite...
Ono sve je u CG-u. Hoce li to raditi na ATI-ju i Xabre-u na primer?
I koliko sam skapirao, M$ ce neshto slichno ubaciti u DX9, a ARB u OpenGL2 zar ne? A sve to je medjusobno razlichito?
 
Ovo je reko lik iz Nvidie :

Future perfect

Looking ahead is an important part of the thinking behind Cg, it transpires. The system is designed to support current-generation hardware fully, and will work with any DirectX 8 hardware (DirectX 9 will include Microsoft’s own implementation of Cg as standard), including NVIDIA’s own GeForce 3 and 4 cards, ATI’s Radeon R200 boards and anything else with pixel or vertex shader support. “The opportunity certainly exists for developers to get really great graphics out of the GF3 and GF4 with Cg”, according to Kirk, “and people can also start to experiment with effects which will be present on NV30 and other future cards, prototyping effects that aren’t real-time in current hardware and getting experience with them.”

“Cg is going to be a dynamic thing”, he continues. “Right now it’s focused on pixel and vertex shaders, but as technology advances other parts of the graphics pipeline will become programmable, and the language will continue evolving in order to follow that.”

One concern which has been voiced is over the performance of Cg-generated shaders on non-NVIDIA hardware, but Kirk seems perplexed by this suggestion. “Our compiler generates shader code and sends it to DirectX or OpenGL, and shaders are a standard, so they should run on any card that supports the shader standards, including our competitors… Besides, I think it’s in our interest to make sure that Cg runs well on everything – we want people to really use this technology, and that’s all about taking away their reasons not to... Making the compiler so that it didn’t work well on ATI cards, for example, would be really bad for us too.”
 
Pixel shaderi se u OpenGL terminologiji obicno zovu Fragment Shaders i podrzani su preko OpenGL ekstenzija. Problem je sto jos to nije standardizovano, pa se muka muci dok to sve proradi za sve platforme.
Standardna ekstenzija bi trebalo da bude GL_ARB_fragment_program, ali je za sada podrzava samo ATI 9700. ATI koristi ekstenziju GL_ATI_fragment_shader, Matrox (jos nepostojecu GL_MTX_fragment_shader), a NVidia izgleda nekoliko - GL_NV_register_combiners i GL_NV_texture_shader.. Za NVidia mi nije jasno jer su register combiners podrzani i od GeForce2, a oni, koliko znam, nemaju pixel shaderse.
U svakom slucaju je to jedna papazjanija koja ce se valjda rascistiti sa OpenGL 2.0 ili makar sa sire prihvacenim GL_ARB_fragment_program.

NVidia obecava da njen Cg ume da kompajlira shader programe i za "konkurente". Sta to znaci i kako izgleda, ne znam.

Slicna papazjanija kod vertex programa (shadera) je valjda rasciscena sa OGL 1.4 i GL_ARB_vertex_program.

Pixel shadere bi trebalo da podrzavaju sve DirectX8 karte, ukljucujuci i Xabre. Oni su pribegli zanimljivom triku ukljucujuci Pixel shaderse u HW, a SW emulirajuci Vertex shaderse. Ima logike, posto se mesh inace procesira od strane CPU-a, pa se sve moze i obraditi na njemu. HW bi trebalo da da ubrzanje. Pixel shadersi su druga prica posto rade direktno sa teksturama i frame baferima i tu nema emulacije.

Posledica svega je da je MUKA raditi sa PS u OpenGL-u i to je glavni razlog sto razmisljamo o prelasku na D3D, ili makar na dualni engine.
 
Malo odudaram od teme, ovo je vec za "programiranje"
Pa meni D3D izgleda daleko organizovaniji (klase) od OpenGL-a. Glavna stvar zbog koje ga nisam uchio je to shto mora da prochitam 3 strane o COM arhitekturi. Nije da je teshko, samo je odbojno. Da li je moralo tako?
Inache imam utisak da je SDK za direct3d izuzetno dobro napisan i organizovan, sa gomilom primera. Dodushe, to su vishe future-based primeri, dok se algoritmi (BSP, frustum culling i sl.) mogu naci na internetu. Ima li d3d neki selection buffer (za biranje objekata) ili sve to mora matematikom?
 
Picking u D3D? Mislim da ne podrzava, cak sam nasao mesta gde se kaze da nema podrske za to u D3D-u, cak ni ver. 8.
 
Nazad
Vrh Dno