2 Stimmen

Richtungsvektor beim Raycasting

Wenn ich lese, wie man den Richtungsvektor beim Raycasting erhält, zum Beispiel auf dieser Website: http://www.daimi.au.dk/~trier/?page_id=98

Sie rendern das Netz zunächst mit Front-Face-Culling und dann mit Back-Face-Culling. Dann wird die Rückseite von der Vorderseite subtrahiert, um einen Richtungsvektor für jedes Pixel zu erhalten.

Aber ist dies nicht zu viel Arbeit, um den Richtungsvektor zu erhalten, ist es nicht einfacher und schneller, nur die Vertex-Position (in Weltkoordinaten) zu nehmen und die Kameraposition im Fragment-Shader zu subtrahieren, um den Richtungsvektor zu erhalten? Das sollte genau die gleiche Antwort geben, aber wir überspringen das Backface- und Frontface-Rendering.

3voto

Jackson Pope Punkte 14175

Die dort beschriebene Methode liefert das genaue Segment des Strahls, das durch das Objekt verläuft (was für das Volumenrendering wichtig ist). Wenn Sie also das Strahlensegment für dieses Pixel, das durch das Objekt geht, erhalten möchten, ist dies eine sinnvolle Sache zu tun.

Wenn Sie nur einen Richtungsvektor von der Kamera zum Objekt erhalten möchten, ist die von Ihnen vorgeschlagene Vorgehensweise (und optionale Normalisierung) eine effizientere Methode.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X