首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Arcball输入光源位置

使用Arcball输入光源位置
EN

Stack Overflow用户
提问于 2012-11-09 11:36:59
回答 1查看 105关注 0票数 0

我正在尝试使用GLUI在OpenGL中实现一个功能,以便"Arcball“控件用于输入灯光的位置。我不知道该怎么做,因为arcball给出的旋转矩阵是4x4维的,而光的位置是一个由3个坐标组成的一维阵列。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-09 16:09:48

围绕场景旋转灯光只对平行光有意义(即无限大的位置)。所以你不是在旋转一个点,而是一个方向,就像法线一样。非常简单:让未旋转的灯光具有(0,0,1,0)方向。然后,为了在场景中旋转它,你可以将它乘以给定矩阵的转置逆矩阵。但是因为你知道这个矩阵只包含一个旋转,所以这是一个特例,转置逆与原始矩阵相同。

因此,您只需将初始灯光方向(0,0,1,0)与矩阵相乘即可。

我们可以进一步简化这一过程。如果你看一下乘法,你会看到,它本质上只是提取矩阵的(加权)列,对于这些列,原始灯光位置向量是非零的。所以,如果我们真的从(0,0,1,0)的光方向开始,你只需从arcball旋转矩阵中取第三列。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13301752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档