Vraag & Antwoord

Videokaarten en monitoren

DirectX vraag

9 antwoorden
  • Hoi, omdat hier ontzettende pro's zitten, maar eens een vraagje, ik zou graag willen weten wat het verschil is tussen DX7 en DX8.0a. Nu heb ik al gegoogled (of hoe je dat ook schrijft) maar kan niet een site vinden die me dat kan uitleggen. Ik wil het weten omdat een game ontwikkelaar me verteld dat zijn nieuwe versie niet DX7 gebruikt maar 8.0a en ik wil proberen uit te vinden wat ik dan kan verwachten voor verbeteringen in de grafische engine...
  • DX 8.1b is al uit hoor ;) dit is de dx site van ms, denk dat je hier veel kan vinden http://www.microsoft.com/windows/directx/default.asp ff bij google ingetikt "What's new directx8" Voila: http://www.gamespot.com/features/directx2/
  • Over een week of twee komt de nieuwe C!T magazine uit en daar heb ik uitvoerig beschreven wat DirectX 8 (specifiek grafische kaarten) betekend. In een notedop: DirectX 8 maakt het mogelijk om instructies voor effecten (belichtingen van oppervlakken of pixels) te uploaden naar de grafische kaart. Hierbij wordt meestal gerefereerd naar programmable Vertex en Pixelshaders zonder dat iemand een idee heeft wat dat eigenlijk is. En dit is eigenlijk het grote verschil met DirectX 7. Bij DirectX 7 kan alleen op vertex niveau gewerkt worden middels de fixed T&L. Vertex is hoekpunt van een polygoon. Een aantal polygonen bij elkaar is een model. De vertexshader is het onderdeel van de grafische processor dat wordt gebruikt om bewegingen en belichtingen te berekenen. Hierbij wordt uitsluitend aan hoekpunten (vertices) van de polygonen gerekend. Met de oude T&L (directX 7) van de GF2 en de Radeon 64 wordt ook alleen aan de hoekpunten van polygonen gewerkt. Bij fixed T&L wordt het belichten van oppervlakten gedaan middels interpolatie. Door op de drie hoekpunten van een polygoon een lichtwaarde te geven wordt de hele belichting van het polygoon uitgerekend. Dit werkt goed mits de polygonen klein zijn. Dit wordt vertex lighting genoemd en wordt ook in DirectX 8 ondersteund. In directX 7 kan men middels T&L alleen schalen (groter/kleiner) en roteren. In directX 8 kan men bewegingen laten uitrekenen door de grafische processor. De CPU moet de grafische processor 1 keer een voorbeeld geven en vervolgens kan deze de beweging kopieeren op andere polygonen. Denk bijvoorbeeld aan de golven van de pixelshader test in 3DMark2001. Dit is een pure vertexshader beweging. Ook kan in DirectX 8 gebruik gemaakt worden van Tesselation. Dat is een methode om oppervlakken te verbeteren. Als we even terug gaan naar de golven dan moet je voor hele mooie ronde en soepele bewegende golven veel polygonen hebben. Dit geeft veel data overdracht op de AGP bus en dus wordt tesselation gebruikt. Tesselation vermenigvuldigt het aantal polygonen met een factor X om meer polygonen te krijgen dan er eigenlijk geprogrammeerd zijn. Nog een functie is Matrix palet skinning. Dit is ook een vorm van beweging dat gebruikt wordt voor ,bijvoorbeeld, karakters of een groot hoofd dat gelaats uitdrukkingen moet laten zien. Met matrix palet skinning kun je wederom vertices met elkaar "verbinden". Het idee is dat wanneer je een knipoog geeft de wang en de mond meebewegen. Een ander voorbeeld is een glas oppakken, de vingers moeten bewegen en daardoor ook de hand en de arm. Matrix palet skinning verbind deze objecten (bones) met elkaar. Omdat vertexlighting vaak te globaal is en daardoor onnatuurlijk is, zijn in Quake 3 lightmaps gebruikt. Dit zijn textures die op een andere texture geplakt kunnen worden. Hiermee wordt als het ware per pixel lighting van DirectX 8 gesimuleerd. Alleen is een lightmap statisch omdat het een texture is. Per pixel lighting is vooral geschikt om bewegende oppervlakken te belichten. Dit wordt dan ook gedaan bij water. Doordat elke pixel appart een lichtwaarde kan hebben die dan ook nog telkens veranderd worden deze oppervlakken heel realistisch. [img:94fab226d6]http://www.computertotaal.nl/image/Directx8_klein.jpg[/img:94fab226d6] links geen pixelshader rechts wel. Een ander functie is quad texturing. De pixelshader kan de lagen (quad is vier textures) sturen. Hiermee worden onder anderen bumpmap effecten toegevoegd. [img:94fab226d6]http://www.matrox.com/mga/media/artwork/parhelia/technology/quad_texture/quadtext_main.jpg[/img:94fab226d6] Hopelijk heb je hier wat aan.
  • HJS, dat de versie van DX al verder is wist ik , maar de gameontwikkelaar maakt daar nog geen gebruik van...en nee je mag niet raden wie dat dan is...LOL Ik had zelf zo'n twintig sites bezocht maar overal vind ik het standaard verhaaltje, niet ergens een lekker overzicht van 'ten opzichte van DX7 kunnen ze dit extra doen met DX8'...ook bij MS kon ik dat lijstje niet vinden, er staat wel een overzichtje over DX7, maar dan weer niet in vergelijking met DX8...en ik ben niet vasthoudend genoeg om het al precies te onderzoeken, de beta van hun moet nog komen (+/- zomer 2003) met een verwachte release eind 2003...(mijn relatie is dat ik add-ons maak voor dat gamepje, hoewel mij al beloofd is dat we dezelfde ontwikkeltools kunnen gebruiken, wil je altijd meer weten...wachten op de beta!) Slashhead, bedankt, daar leer ik al meer van dan van al die gamesites die technische kreten blaten maar vergeten er bij te vertellen wat het doet...ik ben gelukkig abonnee, dus zodra ik terug ben van vakantie zal de nieuwe C!T misschien net op mijn deurmat liggen..!! Extra vragen... hoe moet ik je uitleg (duidelijk overigens!) vertalen naar de tools die we gebruiken, dat is nu 3Dmax en dat zal ook zo blijven...Meeste interesse gaat uit naar producten die nu uit zijn en dus met een DX7 grafische engine compatibel zijn, alpha shading en extended textures in dit geval, om die compatibel te maken met de volgende gamerelease gebaseerd op DX8.0a...bumpmaps maken kan ik wel aan...LOL, ben alleen bang dat het model aangepast moet worden om van die T&L aspecten gebruik te kunnen maken? Kan er dus wel vanuit gaan dat de opbouw van de objecten die in de game voorkomen totaal anders zullen zijn dan die we nu hebben? Maar dat wordt bereikt met de ontwikkeltool, niet met 3Dmax...naar ik aanneem....en is eigenlijk DX8 backwards compatibel met DX7?? Dan zou het ook nog kunnen dat ze er in het geheel geen gebruik van maken...... argghhh...ben te vroeg denk ik (gezien de releasedate) om me hier al zorgen over te maken!
  • Uiteraard moet je zelf over een DirectX 8 compliant grafische kaart beschikken. Ik adviseer je om gebruik te maken van nVidia hardware zoals de GeForce 4 Ti4600. Middels de SDK versie van DirectX kun je rustig bestuderen wat je allemaal kunt. Er zitten een heleboel tools in die je de verschillende componenten uitleggen en hoe je ze moet toepassen. http://msdn.microsoft.com/downloads/?url=/downloads/sample.asp?url=/MSDN-FILES/027/001/771/msdncompositedoc.xml&frame=true Een andere site die handig voor je kan zijn is www.flipcode.com
  • [quote:16cbd31013]en is eigenlijk DX8 backwards compatibel met DX7[/quote:16cbd31013] Ja.
  • [quote:0d707bf484="Slashhead"]Uiteraard moet je zelf over een DirectX 8 compliant grafische kaart beschikken. Ik adviseer je om gebruik te maken van nVidia hardware zoals de GeForce 4 Ti4600.[/quote:0d707bf484] Wat is het voordeel van een GF4 tov een Parhelia of een Radeon?
  • nVidia heeft nauwelijks/geen fouten in de drivers waardoor het makkelijker fout zoeken is wanneer iets niet werkt.
  • [quote:9d6df178c8="Slashhead"]nVidia heeft nauwelijks/geen fouten in de drivers waardoor het makkelijker fout zoeken is wanneer iets niet werkt.[/quote:9d6df178c8] Moet je wel drivers nemen aan het einde van een serie, en niet bv. die nieuwe 40.* serie. Laatste officiele WHQL gecertificeerde 30.* dus.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.