我目前有以下顶点数据(用于金字塔),如下所示:
float4 vertexData[ 18 ] =
{
// front
{ 1.0f, 0.0f, 1.0f, 1.0f }, // front right
{ 0.0f, 1.0f, 0.0f, 1.0f }, // top
{ -1.0, 0.0f, 1.0f, 1.0f }, // front left
// right
{ 1.0f, 0.0f, 1.0f, 1.0f }, // right front
{ 0.0f, 1.0f, 0.0f, 1.0f }, // top
{ 1.0f, 0.0f, -1.0f, 1.0f }, // right back
// back
{ 1.0f, 0.0f, -1.0f, 1.0f }, // back right
{ 0.0f, 1.0f, 0.0f, 1.0f }, // top
{ -1.0, 0.0f, -1.0f, 1.0f }, // back left
// left
{ -1.0f, 0.0f, -1.0f, 1.0f }, // left back
{ 0.0f, 1.0f, 0.0f, 1.0f }, // top
{ -1.0f, 0.0f, 1.0f, 1.0f }, // left front
// bottom back major
{ -1.0f, 0.0f, 1.0f, 1.0f }, // bottom left front
{ -1.0f, 0.0f, -1.0f, 1.0f }, // bottom left back
{ 1.0f, 0.0f, -1.0f, 1.0f }, // bottom right back
// bottom front major
{ 1.0f, 0.0f, -1.0f, 1.0f }, // bottom right back
{ 1.0f, 0.0f, 1.0f, 1.0f }, // bottom right front
{ -1.0f, 0.0f, 1.0f, 1.0f }, // bottom left front
};
我想基本上采用我的金字塔,并使用着色器(如果可能)来计算两个顶点之间的边缘,然后将某种“线”发送到片段着色器。
我知道我可能只使用“GL_LINES”,并设置一个新的统一颜色,但我认为这不会很有效。不过,也许我错了?
无论哪种方式,我最初考虑着色器的主要原因是因为它们是一种很酷的方法:我可以编写一个可以为边框添加一些有趣效果的程序。但是,就如何通过一个着色器程序执行此操作而言,我完全被难住了。
关于这个的好方法有什么想法吗?