- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
照明不工作,对象显示为纯色。颜色本身随 Material 或照明参数而变化,但没有阴影或任何纯灰色。
部分代码如下:
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glFrontFace(GL_CCW);
glShadeModel(GL_FLAT);
glEnable(GL_LIGHTING);
GLfloat amb[] = {0.6, 0.6, 0.6, 1.0};
GLfloat dif[] = {0.8, 0.8, 0.8, 1.0};
GLfloat spec[] = {0.5, 0.5, 0.5, 1.0};
GLfloat pos[] = {0.0, 0.0, 30.0};
glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
glLightfv(GL_LIGHT0, GL_SPECULAR, spec);
glLightfv(GL_LIGHT0, GL_POSITION, pos);
GLfloat co[4]={0.5, 0.5, 0.5, 0.5};
GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
GLfloat mat_shininess[] = { 1.0 };
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, co);
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, mat_shininess);
for(int i=0; i < numofTr; i++)
{
glBegin(GL_TRIANGLES);
glNormal3f(tr[i].v1->n.x, tr[i].v1->n.y, tr[i].v1->n.z);
glVertex3f(tr[i].v1->x, tr[i].v1->y, tr[i].v1->z);
glNormal3f(tr[i].v2->n.x, tr[i].v2->n.y, tr[i].v2->n.z);
glVertex3f(tr[i].v2->x, tr[i].v2->y, tr[i].v2->z);
glNormal3f(tr[i].v3->n.x, tr[i].v3->n.y, tr[i].v3->n.z);
glVertex3f(tr[i].v3->x, tr[i].v3->y, tr[i].v3->z);
glEnd();
}
我不知道我错过了什么,法线与对象一起显示时看起来不错。
最佳答案
您在灰色物体上使用昏暗的灯光。显然结果是灰色的。
如果您的意思是面部是平坦的阴影,那是因为 glShadeModel(GL_FLAT);
。将其更改为 GL_SMOOTH
以启用插值。
如果对象是 3D 的,我认为你只传递 3 个 float 作为位置这一事实可能是相关的;默认值为 [0,0,1,0]
,函数需要四个 float (第 4 个是 W 坐标,在大多数情况下应该等于 1,或者对于无限远的灯光为 0 ).
还要仔细检查您提供给 glVertex
和 glNormal
的数据是否正确。当在 0,0,0 处渲染球体时,每个顶点的法线是该顶点的归一化位置(显然仅适用于球体)。
附带说明一下,这段代码显然已经过时了,作为免责声明,如果您只是在学习,我会完全放弃它,并切换到相对现代并使用可编程管道的东西。
关于c++ - 照明不适用于 OpenGL - 纯色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16486490/
我正在尝试更改iOS背景颜色,但是我认为透明度(alpha:1)似乎在起作用并改变了预期的颜色。 In **AppDelegate.m** rootView.backgroundColor = [
https://www.dropbox.com/s/4zkhtdv4yaqhpxy/Screenshot%20from%202015-01-28%2010%3A42%3A02%201.png?dl=0
照明不工作,对象显示为纯色。颜色本身随 Material 或照明参数而变化,但没有阴影或任何纯灰色。 部分代码如下: glPolygonMode(GL_FRONT_AND_BACK, GL_FILL)
ppt幻灯片生成时,系统默认是无色背景填充,幻灯片设计需要手动设置背景效果,可设置颜色填充或者图片背景填充。本文将对此介绍具体实现方法。 jar文件导入方法(参考): 步骤1:在java程序中可
我是一名优秀的程序员,十分优秀!