处理对象内对象的照明
Posted
技术标签:
【中文标题】处理对象内对象的照明【英文标题】:handling lighting for objects within objects 【发布时间】:2012-11-25 03:22:41 【问题描述】:基本上,我正在编写一个 C++ 程序来绘制世界中的对象,当我旋转/平移一个由多个对象组成的对象时(例如,一个树对象由一个圆柱体组成),我在照明方面遇到了一些困难树干的对象和叶子的金字塔对象)。
我现在有一个工作光源,但是在旋转对象的子组件时遇到了一些问题(例如其父对象中的金字塔对象,树)。
当我对树对象应用旋转时,所有照明/着色都有效,但如果我尝试在树内旋转金字塔对象,照明会变得不稳定且随机。我真的希望有人可以对我可能遇到的问题提供一些提示或提示?
编辑:这个项目有很多文件,很难在这里抛出足够的文件来提供整个图片。基本上我的步骤是:
-
使用功能正常的 opengl 光源建立一个世界。
创建一个形状对象,该对象具有与其关联的变换矩阵。
使用形状及其矩阵并计算其法线以用于着色。
现在创建一个由其他形状对象组成的新形状对象,并将其扔到世界中以使光照生效。
现在问题发生在这里。如果我旋转父对象,照明很好,但如果我旋转子对象,照明变得随机。
【问题讨论】:
你能展示一些源代码吗? 张贴一张摇摇晃晃的照片。您可以直接上传到 ***。您是在创建金字塔还是 GLUT 调用或模型加载? 【参考方案1】:我在我的代码中发现了问题。我过于频繁地更新法线,因此 opengl 照明的法线不好。
感谢大家的帮助!
【讨论】:
以上是关于处理对象内对象的照明的主要内容,如果未能解决你的问题,请参考以下文章
.NET前后台-JS获取/设置iframe内对象元素并进行数据处理
如何从 postDelayed 添加的处理程序对象中删除可运行对象?