3D-engine

Een 3D-engine is een software-onderdeel dat rasterafbeeldingen maakt van driedimensionale coördinaten. Dit is een gemeenschappelijke component van de motor set en de berekening en simulatie software.

Meestal is het 3D engine is onlosmakelijk verbonden met de rest van de wedstrijd engine, zoals de fysieke motor of motor van dit voorbeeld. Toch heeft een aantal 3D-motoren werken alleen, terwijl ze voorzien in een reeks van functies die toestaan ​​dat hun gebruiker om het te integreren met andere motoren.

Het display operatie heet rendering.

Rendering methoden

Er zijn verschillende 3D-rendering processen. De meest voorkomende methoden zijn ray tracing en rasteren.

RIP is de meest gebruikte methode voor video games. De korte tijd die nodig is om een ​​beeld te berekenen door deze methode zorgt voor een continue beelden op een voldoende hoog tarief voor real-time te maken.

Ray tracing geeft een beeld van een hogere kwaliteit dan rasteren. Complexe berekeningen uitgevoerd in deze methode vereisen veel tijd en rekenkracht en niet toe te staan, tot voor kort, om een ​​beeld te verkrijgen in voldoende korte tijd om te worden gebruikt in een videogame, maar vooruitgang wordt . Ray tracing wordt gebruikt om nog te maken foto's en animatiefilms.

Hardware versnelling zoveel mogelijk de grafische processor - vaak in de grafische kaart - om berekeningen te maken. Het doel is om tijd te besparen door het vrijmaken van de CPU voor andere taken, zoals de arbitrage van het spel, de physics berekeningen en klankbron, kunstmatige intelligentie, etc. Om te profiteren van hardwareversnelling te nemen, 3D-motoren maken vaak gebruik van de mogelijkheden van de low-level software bibliotheken, zoals DirectX of OpenGL.

Met de lancering van de Larrabee-technologie, de ontwikkeling van parallelle en in het algemeen de snelheid van de grafische processors, sommige mensen denken dat ray tracing kan in de toekomst worden gebruikt om real-time weergave te maken.

Ray-tracing

De werkwijze ray tracing is de weg die de lichtbundel die overeenkomt met elke pixel van het beeld te berekenen. De 3D-engine berekent het pad door te bladeren door de omgekeerde volgens de regels van de natuurkunde, zoals reflectie en breking. Het voert verschillende geometrische optica berekeningen.

Aangezien de berekening van kleur eenmaal herhaald per pixel, kan deze techniek veel baat parallellisme.

Rasteren

Of rasteren rendering polygonen is een methode waarbij de objecten worden weergegeven als driehoekjes waaraan de grafische kaart wordt blootgesteld verschillende geometrische transformaties te projecteren op het scherm.

Zodra de 2D-coördinaten van de bekende driehoeken, de kaart verandert deze in een aantal pixels, en berekent de kleur van elke pixel individueel.

Wanneer het rasteren wordt uitgevoerd door de grafische kaart, het gebruik van shaders de verschillende stadia van de weergave om aangepaste grafische effecten toe te passen.

Geschiedenis

Volgens sommige wetenschappelijk onderzoek blijkt dat basismath 3D engine zoals real time bleek enigszins voordat hardware acceleratie. De sleutel werd ontdekt door een jonge student in het kader van het onderzoek vrijwilligers. Deze toets is de absolute rotatie gesloten ruimte. De absolute roterende afgesloten ruimte is de samenstelling en herschikking van rotatie van vlak vergelijkingen lineaire vergelijkingen, waardoor toegestaan ​​deze vergelijkingen te programmeren. Dit stelde aanzienlijke vooruitgang op het creëren van een real-time 3D engine software die qua frames per seconde, is veel groter dan het netvlies doorzettingsvermogen. Het duurde enkele jaren voor de wetenschappelijke gemeenschap van de tijd om deze wiskundige keyless zijn schepper, die zonder het te weten, was de basis voor de overgrote meerderheid van de real-time 3D-motoren, met inbegrip van hedendaags gemaakt.

Sinds 1996 hebben de consument 3D motoren begonnen te profiteren van de functies van de nieuwe grafische chip in staat het uitvoeren van bepaalde berekeningen die nodig zijn voor de 3D-weergave, terwijl Intel lanceerde zijn eerste processoren met de MMX instructieset, voor verbeteren van de prestaties van personal computers voor matrixvermenigvuldiging. Tegenwoordig MMX en 3DNow! werden vervangen door SSE alle moderne processors.

Sommige grafische engines, zoals gebruikt in de CryEngine 2 Crysis naderen fotorealisme vandaag.

Meerwaarde van een 3D-engine

Als het low-level API's gebruikt om objecten te tekenen op het scherm, blijven ze vrij complex. Voor een game-ontwikkelaar is het dus beter om een ​​3D-engine die hem in staat stellen om een ​​stuk gemakkelijker maakte het wenst te gebruiken.

Voor deze specifieke motor levert functies om te laden in verschillende formaten, dierlijke modellen door alleen de naam van de animatie etc., met als doel te vereenvoudigen tot het maximum van de werkzaamheden van de ontwerper van het spel.

Optimalisatie

Hoewel de grafische processors zijn zeer krachtig in onze dagen, videospelletjes constant bezig om hun grenzen te verleggen. Optimalisatie is vooral nodig voor de PC, waar veel potentiële spelers niet grafische kunstkaart.

De optimalisatie is sterk afhankelijk van het type spel, bijv .:

  • gebruik octrees of BSP bomen
  • voor gaming weergave van vele eenheden, het gebruik van vereenvoudigde 3D modellen voor verre objecten de camera

Effecten gebruiken

Als rendering technieken bieden vele mogelijkheden, is de rol van de 3D-engine om deze kansen te benutten om grafische effecten te creëren.

Dit omvat:

  • Skybox, technische hemel scherm
  • Shadows
  • Billboards in het bijzonder voor deeltjes
  • Bump mapping
  • Reflecties op een oppervlak of in een spiegel

Zie artikel rasteren voor meer informatie over de uitvoering van deze effecten.

Sommige 3D-motoren

  • Twinmotion
  • Havok
  • Id Tech 5
  • Crystal Space
  • Held Engine
  • Irrlicht
  • OGRE
  • Quest3D
  • Unity3D
  • Revolution3D
  • Truevision3d
  • CryEngine
  • Frostbite Engine
  • UnrealEngine
  • Source Engine
  • Unigine
  • Aambeeld
  • Dunia Engine
  • JMonkeyEngine
  • Frostbite 2