openGL如何将一个球体设置成一个光源?

做的一个太阳系模拟图,现在想让中间的球体,也就是太阳作为一个光源,这个球体是用gluSphere画出来的,原来是在原点位置,可以让lightingPos[]={0.0,0... 做的一个太阳系模拟图,现在想让中间的球体,也就是太阳作为一个光源,这个球体是用gluSphere画出来的,原来是在原点位置,可以让lightingPos[]={0.0,0.0,0.0,1.0}
可是这个程序有一个鼠标拖动放大功能,往前拉就放大,放大之后发现光源位置就不对了,并且在放置光源之后太阳颜色就不是白色的了,求高手教育! 以下是光照部分代码
展开
 我来答
百度网友5bf305b03
2012-11-30 · 超过18用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:47.8万
展开全部
所谓让球体作为光源其实都是在光源位置绘制一个球体而已;如果你要实现物体自发光的话那是一个高级课题,要借助Shader才能实现。

关于你程序中旋转的问题你试试将 glLightfv(GL_LIGHT0,GL_POSITION,lightPos); 这行放到glScalef()后面,因为OPENGL矩阵旋转位移只对它后面的绘制作出影响。

至于太阳颜色方面你可以绘制一个白色的球体作为太阳,并且在绘制太阳时关闭光照,这样它永远都是你指定的颜色 CODE:
glDisable(GL_LIGHTING);
RenderSun();
glEnable(GL_LIGHTING);

最后,如果你觉得你对OGL固定管线比较了解后( glBegin()...glLight,.,这些东西现在已经抛弃了 ),可以学习FBO,VBOP,GLSL等openGL的高级内容。这些东西会帮助你更简单的实现更漂亮的效果
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式