1
我正在使用顶点和GL_LINES的VBO在opengl中绘制3D球形网格。我想达到的目标是让一条线 - 天顶线比其他线更亮。OpenGL 440 - 控制frag中的线条粗细。
我明明商店X,Y,Z COORDS和法线,那么我还不能够使用,其中在创建纹理坐标“标签”的位置 - y坐标为0,像这样:
if (round(y) == 0.0f){
_varray[nr].tex[0] = -1.0; // setting the s variable (s,t texcoord),
// passed in with vbo
}
现在在片段着色器我收到此值,并做到:
if(vs_st[0] == -1){
diffuse = gridColor*2.f;
}else{
diffuse = gridColor;
}
而且结果看起来有点可怕: Print Screen
我意识到这可能是因为片段着色器不得不在两点之间进行插值,你们能否想出一个确定天顶线并使其更明亮的好方法?我宁愿避免使用几何着色器...
在您的片段着色器中,请尝试执行if(vs_st [0]> 0.5)'。 – 2014-09-18 17:50:29
@ColonelThirtyTwo - 如果球体在任何时候都处于原始位置,那么它就可以工作 - 我旋转它,然后我该怎么办? – mike 2014-09-18 19:29:48