处理对象内对象的照明

Posted

技术标签:

【中文标题】处理对象内对象的照明【英文标题】:handling lighting for objects within objects 【发布时间】:2012-11-25 03:22:41 【问题描述】:

基本上,我正在编写一个 C++ 程序来绘制世界中的对象,当我旋转/平移一个由多个对象组成的对象时(例如,一个树对象由一个圆柱体组成),我在照明方面遇到了一些困难树干的对象和叶子的金字塔对象)。

我现在有一个工作光源,但是在旋转对象的子组件时遇到了一些问题(例如其父对象中的金字塔对象,树)。

当我对树对象应用旋转时,所有照明/着色都有效,但如果我尝试在树内旋转金字塔对象,照明会变得不稳定且随机。我真的希望有人可以对我可能遇到的问题提供一些提示或提示?

编辑:这个项目有很多文件,很难在这里抛出足够的文件来提供整个图片。基本上我的步骤是:

    使用功能正常的 opengl 光源建立一个世界。 创建一个形状对象,该对象具有与其关联的变换矩阵。 使用形状及其矩阵并计算其法线以用于着色。 现在创建一个由其他形状对象组成的新形状对象,并将其扔到世界中以使光照生效。 现在问题发生在这里。如果我旋转父对象,照明很好,但如果我旋转子对象,照明变得随机。

【问题讨论】:

你能展示一些源代码吗? 张贴一张摇摇晃晃的照片。您可以直接上传到 ***。您是在创建金字塔还是 GLUT 调用或模型加载? 【参考方案1】:

我在我的代码中发现了问题。我过于频繁地更新法线,因此 opengl 照明的法线不好。

感谢大家的帮助!

【讨论】:

以上是关于处理对象内对象的照明的主要内容,如果未能解决你的问题,请参考以下文章

恒德无线远程城市照明管理系统

.NET前后台-JS获取/设置iframe内对象元素并进行数据处理

通过 OpenGL Assimp 加载的对象有时会反转法线

如何从 postDelayed 添加的处理程序对象中删除可运行对象?

XSSFWorkbook对象 进行zip打包时 用write资源流自动关闭处理办法

照明如何影响视觉应用?最佳机器视觉照明的八个技巧!