Verständnisfrage zu Vertex-/Indexbuffer
-
hallo
ich lese überall, dass man mit hilfe von indexbuffern speicher sparen kann. so z.b. wenn ich einen würfel darstellen will, da brauche ich nur noch 8 vertices. nun zu meiner frage: sobald ich den würfel beleuchten will, dann brauche ich bekanntlich normalvektoren für die vertices; bei einem würfel gäbe das dann 3 normalvektoren pro vertex. das funktioniert aber so nicht, ich hab pro vertex nur einen normalvektor. daher muss ich ja doch wieder mehr vertices verwenden (ich glaub 24) und der vorteil mit den indices ist zur sau. stimmt meine überlegung soweit?
-
Eigentlich sollte man dir ja aus Prinzip nich antworten, weil du zu faul warst dich zu registrieren um im Grafikforum zu posten...
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Spiele-/Grafikprogrammierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
ähhm schau dir mal die tutorials an ...
also vertexbuffer und indexbuffer sind mir in zusammenhang von .x files bekannt, da wird jeder punkt(vertex) den es gibt nach ein ander auf gezählt zB:
0.0f,0.0f,0.0f
0.0f,0.0f,1.0f
0.0f,1.0f,0.0f
0.0f,1.0f,1.0f
1.0f,0.0f,0.0f
1.0f,0.0f,1.0f
1.0f,1.0f,0.0f
1.0f,1.0f,1.0fund der index buffer was macht der ok erst mal schaun wie der ausschaut:
0,1,2
1,3,2
0,1,4
1,5,4
0,2,4
4,2,6
4,5,6
5,7,6
4,5,0
5,1,0
4,6,0
0,6,2fällt dir da nich was mit den wertigkeiten auf?
[weis jetzt nicht ob das auch nen würfel ergibt grad ausgedacht *G*]
also sowas ist nun das einfachste was man bei 3d objekten hat und ist fast keine grundlage mehr
(als wekduck gemeint)~ps: könnte es nicht sein das der indexbuffer das netzdarstellt und der verktorbuffer die koordinaten fürs netz ;)~
-
LinkeT schrieb:
also sowas ist nun das einfachste was man bei 3d objekten hat und ist fast keine grundlage mehr
(als wekduck gemeint)~ps: könnte es nicht sein das der indexbuffer das netzdarstellt und der verktorbuffer die koordinaten fürs netz ;)~
wtf?
Im VertexBuffer liegen die Vertices und im IndexBuffer die Indices, mit denen du die Konnektivität der Vertices angibst. Is logisch, dass man damit enorm viel Speicher sparen kann, da ein Index (16 oder 32 Bit) nahezu immer kleiner ist als ein Vertex.
-
bei einem würfel gäbe das dann 3 normalvektoren pro vertex.
daher muss ich ja doch wieder mehr vertices verwenden und der vorteil mit den indices ist zur sau.
stimmt meine überlegung soweit?nein: zusaetzliche eckpunkte braeuchtest du auch, wuerdest du keine indices verwenden.
bei indexing brauchst du 4 vertices pro seite, also insgesamt 46=24.
ohne indexing brauchst du zwei dreiecke pro seite, also 66=36 vertices.
-
Habt ihr seine Frage auch gelesen? Tipp: Es steht noch was zu Normalenvektoren drin.
-
Jester schrieb:
Habt ihr seine Frage auch gelesen? Tipp: Es steht noch was zu Normalenvektoren drin.
hellihjb hat seine frage, auch normalen bezueglich, sehr richtig beantwortet.