Ik vroeg me af of deze techniek zou kunnen verbeterd:
Stel dat je een SceneManager klasse hebt die alle 3D objecten in een omgeving verhandelt. Er is een algemente SceneObject klasse, waaruit 2 klassen worden afgeleid:
- FixedSceneObject
- AlterableSceneObject
Elk SceneObject heeft een mesh, en elke mesh heeft minstens 1 groep vertices. Elke groep vertices heeft een translatie en rotatie matrix en elke groep kan gekoppeld zijn aan een andere vertexgroep opdat ze elkander kunnen beinvloeden.
Elk SceneObject heeft deze eigenschappen:
- vertices met texture met coordinaten
- een plaats (standaard 0X,0Y,0Z)
- een rotatie (standaard 0°X,0°Y,0°Z)
- een naam/ID (voor debugging)
- een bounding box (die optioneel kan worden berekend)
- een bounding sphere (die optioneel kan worden berekend)
- rendertype (lijnen, punten, polygonen)
FixedSceneObjecten zijn in principe gewone SceneObjecten, maar AlterableSceneObjecten kan ook matrixberekeningen doen opdat de vertices kunnen worden aangepast.
Elke vertex groep heeft deze eigenschappen:
- polygonen
- een bounding box (die optioneel kan worden berekend)
- een bounding sphere (die optioneel kan worden berekend)
De SceneManager zelf heeft ook nog opties zoals:
- Alles renderen met een bepaald rendertype, ongeacht het gedefinieerde type van het object zelf
- Alle bounding boxes/spheres renderen, ongeacht wat er is gedefinieerd in het object.
De hele scene manager zou moeten voorzien zijn op physics, omdat ik dat later misschien wil toepassen (*heeft op de trein nog es zitten kwijlen naar de HalfLife2 E3 movie*). Het geheel zal worden geimplementeerd in een 3D engine die bedoeld is voor een first person shooter.
[edit] Aanpassing wegens info van .oisyn
Stel dat je een SceneManager klasse hebt die alle 3D objecten in een omgeving verhandelt. Er is een algemente SceneObject klasse, waaruit 2 klassen worden afgeleid:
- FixedSceneObject
- AlterableSceneObject
Elk SceneObject heeft een mesh, en elke mesh heeft minstens 1 groep vertices. Elke groep vertices heeft een translatie en rotatie matrix en elke groep kan gekoppeld zijn aan een andere vertexgroep opdat ze elkander kunnen beinvloeden.
Elk SceneObject heeft deze eigenschappen:
- vertices met texture met coordinaten
- een plaats (standaard 0X,0Y,0Z)
- een rotatie (standaard 0°X,0°Y,0°Z)
- een naam/ID (voor debugging)
- een bounding box (die optioneel kan worden berekend)
- een bounding sphere (die optioneel kan worden berekend)
- rendertype (lijnen, punten, polygonen)
FixedSceneObjecten zijn in principe gewone SceneObjecten, maar AlterableSceneObjecten kan ook matrixberekeningen doen opdat de vertices kunnen worden aangepast.
Elke vertex groep heeft deze eigenschappen:
- polygonen
- een bounding box (die optioneel kan worden berekend)
- een bounding sphere (die optioneel kan worden berekend)
De SceneManager zelf heeft ook nog opties zoals:
- Alles renderen met een bepaald rendertype, ongeacht het gedefinieerde type van het object zelf
- Alle bounding boxes/spheres renderen, ongeacht wat er is gedefinieerd in het object.
De hele scene manager zou moeten voorzien zijn op physics, omdat ik dat later misschien wil toepassen (*heeft op de trein nog es zitten kwijlen naar de HalfLife2 E3 movie*). Het geheel zal worden geimplementeerd in een 3D engine die bedoeld is voor een first person shooter.
[edit] Aanpassing wegens info van .oisyn
[ Voor 17% gewijzigd door Verwijderd op 18-12-2003 21:04 ]