OpenGL多边形上的照明
OpenGL Lighting on a polygon
我正在编写一个非常小的游戏,在这个游戏中,玩家携带一个手电筒。
游戏发生的世界是一个小房子。
问题是,我的墙是由绘制多边形,一个多边形是一个墙。所以当我把光照在墙上时它不会亮起来,只有当光照射到其中一个顶点时我才会看到一些光,只有那个顶点才会亮起来。
有没有办法让这个多边形的中间受到光的影响,即使那里没有定义的顶点?
我还用位置光测试了这个,它也只影响顶点。
你在这里看到的是Gouraud阴影,或者只是每个顶点照明。这就是OpenGL的固定函数流水线所实现的。然而,在这一千年里,没有人使用它。您要求的是Phong阴影,或每个像素/每个片段照明。在OpenGL中,这意味着你必须使用可编程管道,并且必须编写自己的着色器。但是无论如何你都应该这样做,因为自GL3以来,固定函数管道被声明弃用,并且实际上从OpenGL的现代核心配置文件中删除了。
所以我建议你应该做的是学习现代OpenGL,也许通过以下一些教程:
- arcsynthesis
- open.gl
第一个还涵盖了一般照明主题和每个片段照明(例如在这里),但你应该意识到这些是更高级的主题,初学者需要一些时间来学习所有的基础知识。
相关文章:
- 计算缩放多边形的比例,得到给定的多边形面积
- 将QGraphicsItem的移动区域限制在多边形区域内
- 如何制作无限制照明系统
- 重新排列单线以形成闭合多边形?
- 提升几何体:C++并集多个多边形
- 在 QT C++中绘制/操作多边形
- Maya API C++:从多边形获取材质
- 添加带有提升的多边形::p奥利贡不编译?
- 使用 C++在 OpenGL 中对 3D 多边形进行纹理处理
- 使用 C++在 OpenGL 中移动自动旋转的 3D 多边形
- 如何使用增强::几何计算多边形的旋转固体体积?
- 从拉伸多边形构建多面体
- 使用提升几何缓冲区缩放多边形时的冗余折点
- cgal多边形网格中的tet网格密度分级
- 如何绘制具有随机顶点数量的多边形并旋转它们
- 多边形裁剪 - 一点点详细说明
- 使用裁剪器库在线和多边形之间相交
- 平移 CGAL 多边形,而无需循环穿过折点
- 无法正确改变窗口中多边形的形状
- OpenGL多边形上的照明