支持抗锯齿
This commit is contained in:
@@ -1,21 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include "math/dvc_vector3.h"
|
||||
#include "rasterizer/dvc_rasterizer_triangle.h"
|
||||
|
||||
struct Triangle
|
||||
{
|
||||
public:
|
||||
davinci::fVector3 p0, p1, p2;
|
||||
davinci::fVector3 pixelColor;
|
||||
std::vector< std::pair<int32_t, int32_t> > pixels;
|
||||
int32_t m_id;
|
||||
davinci::fVector3 m_p0, m_p1, m_p2;
|
||||
davinci::fVector3 m_pixelColor;
|
||||
struct Pixel
|
||||
{
|
||||
int32_t x, y;
|
||||
uint32_t mask; // 0xFFFFFFFF for full pixel, 0x00000000 for empty pixel
|
||||
};
|
||||
typedef std::vector<Pixel> PixelArray;
|
||||
PixelArray m_pixels;
|
||||
|
||||
public:
|
||||
Triangle(){}
|
||||
Triangle(const davinci::fVector3& _p0, const davinci::fVector3& _p1, const davinci::fVector3& _p2) : p0(_p0), p1(_p1), p2(_p2) { }
|
||||
Triangle(const Triangle& other) : p0(other.p0), p1(other.p1), p2(other.p2), pixelColor(other.pixelColor), pixels(other.pixels) {}
|
||||
static int32_t nextID();
|
||||
static davinci::fVector3 randomColor();
|
||||
|
||||
Triangle(int32_t id, const davinci::fVector3& pixelColor)
|
||||
: m_id(id)
|
||||
, m_pixelColor(pixelColor)
|
||||
{
|
||||
}
|
||||
|
||||
public:
|
||||
void build(const davinci::fVector3& _pixelColor, int32_t canvasWidth, int32_t canvasHeight, bool debug = false);
|
||||
void build(int32_t canvasWidth, int32_t canvasHeight, davinci::AntiAliasingTech aaTech);
|
||||
};
|
||||
|
||||
typedef std::vector<Triangle> TriangleVector;
|
||||
typedef std::vector<Triangle> TriangleArray;
|
||||
|
||||
Reference in New Issue
Block a user