首页>>百科常识

opengl光源设置问题

今天宠物迷的小编给各位宠物饲养爱好者分享gl设置光照的宠物知识,其中也会对opengl光源设置问题(opengl添加点光源)进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!

opengl光源设置问题

opengl光源设置问题

%首先你先要明白的一点是OpenglGL中任何几何图形都是有两个面的,如果你法线设置正确,那么顶点的最终颜色应该与顶点法线向量和光线向量的夹角有关, 夹角越大顶点的颜色就越暗,夹角越小顶点的颜色就越亮。你之所以说球无论怎么旋转都是亮的是因为球的每个顶点在旋转时它的法线向量也是跟着旋转的,所以能得到正确的光照结果。就你这个程序,这样的结果是正确的,因为你的线段在旋转时它的法线也跟着一起旋转了, 那么当它的背面朝向你时它的颜色会暗一些。 其实球也是一样的, 只不过它的背面在球内部你看不到罢了,其实也是暗的。 无论球怎么旋转它所呈现在你面前的都是正面。 你想要你的线段在任何角度看都是亮的可以在每次旋转线段时重新设置线段每个顶点的法线,使其与光线的夹角为0°或是你想要的角度。 不过我想提醒你, 无论你想要做什么课题这样设置都不是一件什么好事情, 它并不有趣。 请保持Opengl给你程序带来的正确性。 #%

opengl 中 光照纹理如何同时存在

在一般状态下,当把一个纹理应用于一个片断时,只有主颜色与纹理单元的颜色进行了组合.主颜色可能是光照计算的结果,也可能是通过glColor*()函数指定的值. 在纹理处理之后,但在进行雾计算之前,可以对片断应用一种辅助颜色.辅助颜色的应用可以使经过纹理贴图的物体具有更真实的高光效果. ---禁用光照时 如果当前并没有启用光照,并且启用了颜色求和模式(使用glEnable(GL_COLOR_SUM)),那么当前的辅助颜色(由glSecondaryColor*()所设置)便被加到经过纹理处理后的片断颜色上. ---启用光照后 纹理操作是在光照之后进行的,但把镜面亮点和纹理的颜色进行混合通常会减弱光照的效果. 可以为每个顶点计算两种颜色:一种是主颜色,由所有的非镜面成分组成,另一种是辅助颜色,由所有的镜面成分组成.如果把镜面颜色分离来,辅助(镜面)颜色就会在纹理计算之后再添加到片断中. 如果当前启用了光照,就会应用辅助镜面颜色,而不管是否为GL_COLOR_SUM模式,并且glSecondaryColor*所设置的任何辅助颜色都会被忽略. --------------------- 分离镜面成分 glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR);//后面参数用GL_SINGLE_COLOR恢复默认值 _____________ 问题补充: 发射光在材料属性里设置 通过为GL_EMISSION参数指定一个RGBA颜色值,可以使物体看上去发射出这种颜色的光. 由于绝大多数现实世界的物体(除了光源之外)自己都不会发光,因此我们很可能只有在模拟场景中的台灯和其他光源时才会使用这个特性. GLfloat mat_emission[]={0.3, 0.2, 0.2, 0.0}; glMaterialfv(GL_FRONT, GL_EMISSION, mat_emission); 虽然看上去微微有些发光,但是,他们实际上并不是作为光源.需要创建一个光源,放在和物体相同的位置,以创建这种效果

生活中怎么做人

生活中应该如何做人? 一,人在生活中应该高调做事,低调做人,堂堂正正,明明白白,在人群中说话做亊别高人一等,一定说话和气,做到不骄气,更不傲气,别邪眼看人,平平淡淡,爱朋爱友,更要爱门邻,为什么,因为人苦命短,来到当今社会不容易,自己不容易,别人也和同样,所以,才要真心实意对待它人,做人必须善良,要有品,更要有德。 二,做人必须有智慧,做到自立自信和自强,不管干什么都要雄心壮志,更要有生机,大气磅礴,**风格,做华夏儿女的典范,国人标本,老人不欺,少人不哄,尊老爱幼,发扬自慧,讲文明,讲道德,更要讲品质,为社会大众做出优异的成绩来,为民排扰解难,为国做出自已的贡献。 三,做人必须做到吃苦在前,享受在后,人累是苦中苦,苦傲才能得来甜中甜,什么东西不是天上而来,也不是想有就有的,而是自已的能力和正常发挥,而取得,才有成效,有人在生活中非常伟大,顺心顺意更顺情,红福挡道,年顺月顺天顺,幸福安康,吉祥如意。有人翻天喜地过新年,今年不如那一年,说明了做人必须善心善德,这是人的一生基本准则。

我的opengl 光照模型为什么这么难看啊,请高手指点一下

额。。就看到一片白的图。。应该不是VIEW和DC的问题。。估计你是哪里搞错了。

OPENGL一问:怎样覆盖已经存在的纹理

你的代码没什么大问题,我只是在main函数开始添加一行 glutInit(&argc, argv);没有这个初始化,我这里是不能运行地。。。 其他就是拷贝你贴出的代码。

opengl 不能改变点大小和颜色

glColor之类的函数可以改颜色
glPointSize(GLfloat) 可以改点大小


glPointSize : http://baike.baidu.com/view/1280577.htm?fr=aladdin

在opengl中怎么定义超过8个的光源

固定管线最多就8个.
可编程管线可以超过8个16个.具体怎么做看你的设计.因为一般的显卡都要保证Uniform寄存器最低256个的底线. 所以只要你的设计不超过Uniform总数理论上都是可以的.
如果要的再多,就不得不采用"延迟渲染"技术了. 它的渲染步骤比较复杂.支持无数多光源.你可以去看论文. 但是这种画法比较费GPU. 在PC上没问题.但手机上就不行.耗电太大.
比如 古墓丽影9,10 就是典型的后期渲染游戏.你可以玩玩,注意一下它的细节.

openGL关于光照的问题

1、你说的普通坐标系是指世界坐标系还是模型坐标系?
2、先检查一下程序当中是不是多写了一条绘制点的语句。

openGL关于光照的问题

1、你说的普通坐标系是指世界坐标系还是模型坐标系?
2、先检查一下程序当中是不是多写了一条绘制点的语句。

openGL关于光照的问题

1、你说的普通坐标系是指世界坐标系还是模型坐标系?
2、先检查一下程序当中是不是多写了一条绘制点的语句。

本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“opengl光源设置问题

标签:宠物爱好