作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有点被我的灯光困住了。我的灯可以照亮网格,但它不会照亮我的地面。
这是我的一些代码
光:
glEnable(GL_LIGHT0);
glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, 1.0f);
glEnable(GL_COLOR_MATERIAL);
GLfloat ambient_light0[] = { 0.5f, 0.5f, 0.5f, 1.0f };
GLfloat position_light0[] = { 0.0f, 8.0f, 0.0f, 0.9f };
GLfloat spotDirection_light0[] = {0.0, -1.0, 0.0 };
GLfloat specularLightcolor[] = { 1.0, 1.0, 1.0, 1.0 };
glLightfv( GL_LIGHT0, GL_POSITION, position_light0 );
glLightfv( GL_LIGHT0, GL_SPOT_DIRECTION, spotDirection_light0 );
glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 0.5);
glLightfv( GL_LIGHT0, GL_AMBIENT, ambient_light0 );
glLightfv(GL_LIGHT0, GL_SPECULAR, specularLightcolor);
glLightf( GL_LIGHT0, GL_SPOT_CUTOFF, 60.0f );
glLightf( GL_LIGHT0, GL_SPOT_EXPONENT, 50.0f );
void drawGround(int id) {
glEnable(GL_TEXTURE_2D);
glEnable(GL_COLOR_MATERIAL);
getTexture(id);
glBindTexture(GL_TEXTURE_2D, id);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
GLfloat material_diffuse[] = {0.9, 0.9, 0.9, 1.0 };
GLfloat material_specular[] = { 1, 1, 1, 1 };
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, material_diffuse);
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, material_specular);
glBegin(GL_QUADS);
for(int i = 0; i<3; i++){
for(int j= 0; j<3; j++){
glNormal3f(0.0f, 1.0f, 0.0f);
glMaterialfv(GL_FRONT, GL_DIFFUSE, material_diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, material_specular);
glMaterialf(GL_FRONT, GL_SHININESS, 80.0);
glTexCoord2f(1, 1);
glVertex3f(-floorSize +((j)*(2*floorSize)/3), 0 ,-floorSize +((i)*(2*floorSize)/3));
glTexCoord2f(1, 0);
glVertex3f(-floorSize +((j)*(2*floorSize)/3), 0 ,-floorSize +((i+1)*(2*floorSize)/3));
glTexCoord2f(0,0);
glVertex3f(-floorSize +((j+1)*(2*floorSize)/3), 0 ,-floorSize +((i+1)*(2*floorSize)/3));
glTexCoord2f(0, 1);
glVertex3f(-floorSize +((j+1)*(2*floorSize)/3), 0 ,-floorSize +((i)*(2*floorSize)/3));
}
}
glDepthMask( 1.0 );
glDisable(GL_TEXTURE_2D);
glEnd();
}
最佳答案
问题是,默认的固定函数 OpenGL 照明仅在顶点处进行照明,然后仅对生成的颜色进行插值。由于地面的所有 4 个顶点都光线昏暗,因此整个四边形变暗。
解决方案:
关于opengl - 我的地面不亮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7963482/
我想做同样的事情:(没有复制球体) http://people.mozilla.org/~sicking/webgl/ray.html 我做到了,它有效,但反射太大:/ var groundTextu
我知道做水平和垂直卷轴游戏(如马里奥),在这种游戏类型中,角色与用户的距离始终相同。字符仅在水平滚动条中左右移动,在垂直滚动条中上下移动。 但有些 2D 游戏中的角色可以在场景中自由移动,例如图形冒险
如何从 bigcommerce API(Ground、Express)获取订单“运输方式”? 客户下单时选择的送货方式。 谢谢 最佳答案 请参阅此 page , 获取特定订单的运输相关数据。 关于bi
我需要一个 C# 函数来执行以下操作:从 gps 点 A 向 gps 点 B 的方向移动 50 米,并计算该点的 GPS 坐标。 例如我有两个坐标: LatLon LatLonA = new LatL
我是一名优秀的程序员,十分优秀!