![]() |
ProtoTracer
1.0
Real-time 3D rendering and animation engine
|
Provides static methods for rasterizing 3D scenes into 2D camera views. More...
#include <Rasterizer.h>
Static Public Member Functions | |
static void | Rasterize (Scene *scene, CameraBase *camera) |
Rasterizes a 3D scene onto a 2D camera view. | |
Static Private Member Functions | |
static RGBColor | CheckRasterPixel (Triangle2D **triangles, int numTriangles, Vector2D pixelRay) |
Determines the color of a pixel by checking which triangle it intersects. | |
static RGBColor | CheckRasterPixelAccel (Triangle2D **triangles, int numTriangles, Vector2D pixelRay) |
Optimized version of CheckRasterPixel using acceleration structures. | |
Static Private Attributes | |
static Quaternion | rayDirection |
Direction of the ray cast for rasterization. | |
Provides static methods for rasterizing 3D scenes into 2D camera views.
Definition at line 27 of file Rasterizer.h.
|
staticprivate |
Determines the color of a pixel by checking which triangle it intersects.
triangles | Array of 2D triangles to check against. |
numTriangles | Number of triangles in the array. |
pixelRay | The 2D pixel ray to test. |
Definition at line 126 of file Rasterizer.cpp.
References Triangle2D::averageDepth, Triangle2D::GetMaterial(), Material::GetRGB(), Triangle2D::p1UV, Triangle2D::p2UV, Triangle2D::p3UV, Triangle2D::t3p1, Triangle2D::t3p3, Vector2D::X, Vector3D::X, Vector2D::Y, Vector3D::Y, and Vector3D::Z.
Referenced by Rasterize().
|
staticprivate |
Optimized version of CheckRasterPixel
using acceleration structures.
triangles | Array of 2D triangles to check against. |
numTriangles | Number of triangles in the array. |
pixelRay | The 2D pixel ray to test. |
Definition at line 5 of file Rasterizer.cpp.
References Triangle2D::averageDepth, Triangle2D::denominator, Triangle2D::GetMaterial(), Material::GetRGB(), Triangle2D::p1UV, Triangle2D::p1X, Triangle2D::p1Y, Triangle2D::p2UV, Triangle2D::p3UV, Triangle2D::t3p1, Triangle2D::t3p3, Triangle2D::v0X, Triangle2D::v0Y, Triangle2D::v1X, Triangle2D::v1Y, Vector2D::X, Vector3D::X, Vector2D::Y, Vector3D::Y, and Vector3D::Z.
|
static |
Rasterizes a 3D scene onto a 2D camera view.
scene | Pointer to the 3D scene to render. |
camera | Pointer to the camera used for projection. |
Definition at line 159 of file Rasterizer.cpp.
References RGBColor::B, CheckRasterPixel(), RGBColor::G, CameraBase::GetCameraLayout(), CameraBase::GetCameraMaxCoordinate(), CameraBase::GetCameraMinCoordinate(), IPixelGroup::GetColor(), IPixelGroup::GetCoordinate(), Node::GetCount(), Node::GetEntities(), CameraBase::GetLookOffset(), Object3D::GetMaterial(), Scene::GetObjectCount(), Scene::GetObjects(), CameraBase::GetPixelGroup(), Transform::GetPosition(), Material::GetRGB(), CameraLayout::GetRotation(), Transform::GetRotation(), CameraBase::GetTransform(), ITriangleGroup::GetTriangleCount(), Object3D::GetTriangleGroup(), ITriangleGroup::GetTriangles(), QuadTree::Insert(), QuadTree::Intersect(), CameraBase::Is2D(), Object3D::IsEnabled(), Quaternion::Multiply(), RGBColor::R, rayDirection, QuadTree::Rebuild(), Transform::SetBaseRotation(), Vector2D::X, and Vector2D::Y.
Referenced by RenderingEngine::Rasterize().
|
staticprivate |
Direction of the ray cast for rasterization.
Definition at line 29 of file Rasterizer.h.
Referenced by Rasterize().