读书笔记——添加光照之后再应用纹理贴图以保证镜面亮点
2013-10-23 23:55
253 查看
辅助镜面颜色:在纹理贴图之后再应用镜面亮点。(通过加法而不是乘法。)
调用
glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR);
想要恢复则调用
glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SINGLE_COLOR);
调用
glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR);
想要恢复则调用
glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SINGLE_COLOR);
void SetupRC() { glClearColor(fLowLight[0],fLowLight[1],fLowLight[2],fLowLight[3]); glClearStencil(0); glStencilFunc(GL_EQUAL,0x0,0x1); glStencilOp(GL_INCR,GL_INCR,GL_INCR); glCullFace(GL_BACK); glFrontFace(GL_CCW); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); glEnable(GL_MULTISAMPLE_ARB); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR);//<-------就是这一句啦 glLightModelfv(GL_LIGHT_MODEL_AMBIENT,fNoLight); glLightfv(GL_LIGHT0,GL_AMBIENT,fLowLight); glLightfv(GL_LIGHT0,GL_DIFFUSE,fBrightLight); glLightfv(GL_LIGHT0,GL_SPECULAR,fBrightLight); m3dGetPlaneEquation(mPlaneEquation,vPlanePoints[0],vPlanePoints[1],vPlanePoints[2]); m3dMakePlanarShadowMatrix(mShadowEquation,mPlaneEquation,fLightPos); glEnable(GL_COLOR_MATERIAL); glColorMaterial(GL_FRONT,GL_AMBIENT_AND_DIFFUSE); glMaterialfv(GL_FRONT,GL_SPECULAR,fBrightLight); glMateriali(GL_FRONT,GL_SHININESS,128); for (GLint i=0;i<nNumSpheres;i++) { Sphere[i].SetOrigin(((float)((rand() % 400) - 200) * 0.1f), 0.0, (float)((rand() % 400) - 200) * 0.1f); } glEnable(GL_TEXTURE_2D); glGenTextures(nNumTexture,unTexturesObj); glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE); for (GLint i=0;i<nNumTexture;i++) { GLbyte *pBytes; GLint iWidth, iHeight, iComponents; GLenum eFormat; glBindTexture(GL_TEXTURE_2D,unTexturesObj[i]); pBytes=gltLoadTGA(szTextures[i],&iWidth,&iHeight,&iComponents,&eFormat); gluBuild2DMipmaps(GL_TEXTURE_2D,iComponents,iWidth,iHeight,eFormat,GL_UNSIGNED_BYTE,pBytes); free(pBytes); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE); } }
相关文章推荐
- 读书笔记——添加光照之后再应用纹理贴图以保证镜面亮点
- Shader学习 基于vert/frag顶点片段级的纹理采样 光照贴图实现
- Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图
- SolidEdge 工程图中如何给零件添加纹理或贴图
- Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图
- Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图
- 纹理贴图应用
- 镜面色要在乘以纹理色之后再加上去
- NeHe OpenGL教程 15 为轮廓文字添加纹理贴图
- Cg入门22:Fragment shader - 2D纹理采样(光照贴图制作和使用)
- Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图
- OpenGL天空贴图以及反射纹理映射即镜面反射
- spring容器bean实例化之后添加一些自己的逻辑处理(应用实例启动tomcat加载缓存)
- web应用发布之后,添加或者修改浏览器上方的ico(应用图标)
- OpenGL学习笔记(十三):将纹理贴图应用到四边形上,对VAO/VBO/EBO/纹理/着色器的使用方式进行总结
- 《高效学习OpenGL》 之 在纹理之后应用辅助颜色 glSecondaryColor()
- 模拟光照中的凹凸纹理原理和应用
- NeHe OpenGL教程 07 纹理过滤、应用光照
- OpenGL立方体在世界坐标系中_缩放_旋转_平移_顶点片源着色器_光照作用_棋盘纹理贴图
- 关于大四上学期的计算机图形学实验报告123——opengl建模、载入OBJ文件、纹理贴图、光照、交互。