可用来贴有纹理的三角形。
P4FT2F 是 TrianglePainter_P4FT2F 所用顶点数据结构体,它有四个浮点数表示位置信息,两个浮点数表示 UV 坐标。x 与 y 是在绘图区域的像素位置,z 是深度。使用透视投影时,应将各顶点的 w 设置为与它的 z 一样;使用平行投影时,三个顶点的 w 应设为一样的非 0 数值。
可编程管线请用
TrianglePainter。
TrianglePainter_P4FT2F 的构造器:
TrianglePainter_P4FT2F(Canvas* canvas);
对象创建后不再依赖 canvas。
TrianglePainter_P4FT2F(Canvas* canvas, sjEnum flag);
flag 可以是
SJ_CULL_OFF_BIT、
SJ_CULL_BACK_BIT、
SJ_CULL_FRONT_BIT、
SJ_SIFT_OFF_BIT、
SJ_SIFT_ON_BIT、
SJ_DEPTHTEST_OFF_BIT、
SJ_DEPTHTEST_ON_BIT 位的组合。前三个选一个,设置剔除方式。后面的两个选一个,设置是否使用
筛子。最后的两个选一个,设置是否开启
深度检测。默认不开启剔除、筛子、深度检测。
方法:
void setFunc(sjEnum flag);
设置对象是否开启剔除、筛子、深度检测。flag 可以是
SJ_CULL_OFF_BIT、SJ_CULL_BACK_BIT、SJ_CULL_FRONT_BIT、
SJ_SIFT_OFF_BIT、SJ_SIFT_ON_BIT、
SJ_DEPTHTEST_OFF_BIT、SJ_DEPTHTEST_ON_BIT 位的组合。
void setSifter(Sifter* sifter);
设置筛子对象。
void setDepthBuffer(DepthBuffer*);
设置深度缓冲对象。
void setTexture(Image* img);
设置纹理。
void paint(const P4FC3F& p0, const P4FC3F& p1, const P4FC3F& p2);
绘制三角形。传入三个顶点的数据。
相关:
Canvas
Sifter
DepthBuffer
Image
sjEnum