Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
3.926 Beiträge
 
Delphi 12 Athens
 
#2

AW: Z-Buffering (Mal wieder ^^)

  Alt 24. Apr 2016, 08:47
Du hast dir aber viel vorgenommen ...
Am Besten schaust du mal wirklich bei den Profis nach, wie das gemacht wird.

Wenn ich deine Schleifen sehe
Delphi-Quellcode:
 for x := 0 to 499 do // Hier wird noch mal die finale Matrix erstellt
    begin
      for y := 0 to 499 do
      begin
        for c := 0 to Buffers.Count-1 do
        begin
vermute ich mal das es schnell ein Performance und Speicher Problem geben wird, je nachdem wieviele
Ebenen du brauchst.
Deshalb ist Backface culling ja so ein komplexes Thema, und es gibt sicher ein viele mathematische Tricks dazu.

http://myweb.lmu.edu/dondi/share/cg/hsr.pdf
http://www.mttcs.org/Skripte/Pra/Mat...vorlesung6.pdf
http://www.gamedev.net/page/resource...ernative-r1485

Bei deinem Ansatz würde ich mal versuchen statt Pixel, ein sorted Array für jedes Pixel in der Ebene zu benutzen.
Dann sollte nur das erste Element der Arrays gecheckt werden müssen, in welcher Ebene das liegt.
Ob das schneller ist kann ich nicht sagen, aber ich vermute mal das es schon besser ist als
ein Algorithmus der sich mit O^3 skaliert.

Rollo
  Mit Zitat antworten Zitat