实现 逐顶点的 ambient, diffuse, and specular (ADS) shading phong 光照模型

合集下载

AE中particular插件中英文对照

AE中particular插件中英文对照

AE中particular插件中英文对照(一)Emitter(发射器)Particular/sec (粒子/秒)——每秒钟发射粒子的数量。

Emitter Type(发射器类型)——它决定发射粒子的区域和位置。

Point(点)——从一点发射出粒子Box(盒子)——粒子会从立体盒子中发射出来,(Emitter Size中XYZ是指发射器大小)Sphere(球形)——和Box很像,只不过发射区域是球形Grid(网格)——(在图层中虚拟网格)从网格的交叉点发射粒子Light(灯光)——(要先新建一个Light Layer)几个Light Layer可以共用一个Particular。

Layer——使用合成中的3D图层生成粒子,Layer Grid——同上,发射器从图层网格发射粒子,像Grid一样。

Direction(方向)Uniform(统一)——任一粒子发射类型发射粒子时,会向各个方向移动。

Directional(特定方向)——(如枪口喷射)通过调节X、Y、Z Rotation来实现。

Bi-Directional(相反特定方向)——和Directional十分相似,但是向着两个完全相反的方向发射。

通常为180度。

Disc(盘状)——通常只在两个维度上,形成一个盘形。

Outwards (远离中心)——粒子会始终向远离发射点的方向移动。

而Uniform是随机的。

Direction Spread(方向拓展)——可以控制粒子发射方向的区域。

粒子会向整个区域的百分之几运动。

(即粒子发射方向有多宽) Velocity(速度)——粒子每秒钟运动的像素数。

Velocity Random——每个粒子Velocity的随机性会随机增加或者减小每个粒子的Velocity。

Velocity Distribution()——Velocity from Motion(速度跟随运动)——粒子在向外运动的同时也会跟随发射器的运动方向运动。

diffuse造句

diffuse造句

1. "They need to diffuse the controversy, or they could get bogged down globally."他们必须扩散争议,否则他们可能会陷入全球性的动弹不得.2. Among 10 cases of diffuse form of BAC, 6 were mucous type.10例弥散型BAC中6例为粘液型。

3. Two RCT have shown that methotrexate improves skin score in early diffuse SSc.2项RCT研究表明,甲氨蝶呤可改善早期弥漫型的皮肤评分,但对其他器官病变的益处尚未确定。

4. Diffuse alveolar damage appeared in lung of PALI pigs.PALI组猪肺组织出现弥漫性肺泡损伤,总病理评分达(15±2.45)分;5. The pathological study showed diffuse muscle fiber atrophy predominating in PM and perimysium atrophy in DM.PM的病理改变主要表现为散在肌纤维萎缩;DM以束周萎缩多见。

6. Rayleigh scatter determines the upwelling diffuse flux which can be absorbed.Rayleigh散射决定了能被吸收的向外的漫射通量。

7. Strong and diffuse S100 immunoreactivity is probably the diagnostic clincher of this case.S100弥漫强阳性可能是本例强有力的诊断线索。

8. The complete scene should be composed of a specular pass, a diffuse pass and an ambient pass.一个完整的场景应该包括镜面反射(高光)层,本色层和环境层。

计算机图形学真实感图形绘制

计算机图形学真实感图形绘制
图12 光线跟踪算法
41
光线跟踪算法步骤
从视点出发,确定穿过每个像素中心的光线路径, 然后,沿这束光线累计光强,并将最终值赋给相应 像素。
对于每一像素光线,对场景中的所有物体表面进行 测试以确定其是否与该光线相交,并计算出交点的 深度,深度最大(z值)的交点即为该像素对应的可见
点。然后,继续考察通过该可见点的从属光线(
pname取值 GL_LIGHT_MODEL_AMBIENT
默认值 (0.2, 0.2, 0.2, 1.0)
GL_LIGHT_MODEL_LOCAL_VIEWE GL_FALSE
R
GL_LIGHT_MODEL_TWO_SIDE
GL_FALSE
GL_LIGHT_MODEL_COLOR_CONTR GL_SINGLE_COLOR OL
P点对环境光的反射强度为
图1 环境光的反射
8
漫反射光(Diffuse Reflection)
一个粗糙的、无光泽的表面呈现为漫反射。
特点:光源来自一个方向,反射光均匀地射向各个方向 。
由Lambert余弦定理可 得点P处漫反射光的强度为:
图2 漫反射
9
漫反射光(Diffuse Reflection)
含义 整个场景的环境光成分 如何计算镜面反射角
单面光照还是双面光照 镜面反射颜色是否独立于环境颜 色、散射颜色
52
OpenGL材质属性
在OpenGL中,下面的函数用于指定材质属性
void glMaterial{if} (GLenum face, GLenum pname, TYPE param);
43
光线跟踪算法步骤
图13 光线跟踪及光线跟踪树
44
光线跟踪算法步骤

虚拟现实原理与实践_中国传媒大学中国大学mooc课后章节答案期末考试题库2023年

虚拟现实原理与实践_中国传媒大学中国大学mooc课后章节答案期末考试题库2023年

虚拟现实原理与实践_中国传媒大学中国大学mooc课后章节答案期末考试题库2023年1.IBMR(例如全景图)的技术过程可以表达为如下三个步骤:参考答案:离散视点采样;基于采样图像进行场景建模;任意视点的重采样2.当前的图形流水线最初是在哪个图形库中提出的?参考答案:OpenGL3.环境映射、天空球等技术都与全景图技术有密切关系。

参考答案:正确4.全景图非常适合在VR头盔中展示。

参考答案:正确5.最常用的三维模型表示方法是什么?参考答案:将模型表示为多边形面片(Polygons)的集合,也称边界表示法6.光照明模型中最基本的三种光照成分的名称为:参考答案:Diffuse reflection, Specular reflection, Ambient light7.1994年,在PC机中出现了显卡,当时就将图形流水线完全移植到了显卡中实现。

参考答案:错误8.Phong光照明模型无法有效模拟间接光照效果。

参考答案:正确9.材质纹理中只能用来记录物体表面的颜色或者凹凸信息。

参考答案:错误10.感知设备也被称为();跟踪设备也被称为()。

参考答案:输出设备;输入设备11.虚拟现实的3I特性指:()参考答案:沉浸感(Immersion),交互性(Interaction),构想性(Imagination)12.VR头盔主要用于给人提供三维沉浸感体验,因此其是一种重要的VR感知设备,而非跟踪设备。

参考答案:错误13.本课程所讲述的VR的概念性体系结构包括哪几个部分?参考答案:人;虚拟环境;VR的人机接口(包括感知设备和跟踪设备)14.虚拟现实与三维景观动画的主要区别在于:三维景观动画是预先渲染好的,没有互动性。

参考答案:正确15.空间划分技术有利于提升场景剔除和碰撞检测的效率。

参考答案:正确16.烘焙技术可使绘制过程在时间效率和空间损耗上都获得优势。

参考答案:错误17.三维虚拟场景构建中的三项关键技术为:参考答案:建模;渲染;动画18.以下四个选项中,哪一项中的所有软件都属于虚拟现实引擎/游戏引擎:参考答案:OSG;Unity;Vega19.VRML是90年代中期就提出的一种能够在浏览器端运行的构建三维虚拟空间的语言格式。

OpenGL中的光照模型

OpenGL中的光照模型

OpenGL中的光照模型一、OpenGL的光照模型在OpenGL的简单光照模型中反射光可以分成三个分量,环境反射光(Ambient Light)、漫反射光(Diffuse Light)和镜面反射光(Specular Light):a、环境光Ambient,是由光源发出经环境多次散射而无法确定其入射方向的光,即似乎来自所有方向。

当环境光照到曲面上时,它在各个方向上均等地发散(类似于无影灯光)。

特征:入射方向和出射方向均为任意方向。

b、漫射光Diffuse,来自特定方向,它垂直于物体时比倾斜时更明亮。

一旦它照射到物体上,则在各个方向上均匀地发散出去,效果为无论视点在哪里它都一样亮。

特征:入射方向唯一、出射方向为任意方向。

c、镜面光Specular,来自特定方向并沿另一方向反射出去,一个平行激光束在高质量的镜面上产生100%的镜面反射。

特征:入射方向和出射方向均唯一。

二、创建光源定义光源特性的函数:glLight*(light , pname, param)其中第一个参数light指定所创建的光源号,如GL_LIGHT0、GL_LIGHT1、...、GL_LIGHT7;第二个参数pname指定光源特性,这个参数的辅助信息见表1所示;最GL_LIGHT0,其他几个光源的GL_DIFFUSE和GL_SPECULAR缺省值为(0.0,0.0,0.0,1.0)。

三、启用光源和明暗处理如果光照无效,则只是简单地将当前颜色映射到当前顶点上去,不进行法向、光源、材质等复杂计算。

要启用光照或关闭光照,调用函数:glEnable(GL_LIGHTING) 或glDisable(GL_LIGHTING)。

启用光照后必须调用函数glEnable(GL_LIGHT0) ,使所定义的光源有效。

其它光源类似,只是光源号不同而已。

在OpenGL中,用单一颜色处理的称为平面明暗处理(Flat Shading),用许多不同颜色处理的称为光滑明暗处理(Smooth Shading),也称为Gourand明暗处理(Gourand Shading)。

OpenGL函数简介

OpenGL函数简介

附录A OpenGL函数简介OpenGL是国际公认的在计算机中使用广泛、易学易用的三维图形标准,附录A给出了本教材所用OpenGL函数的简单说明(/documentation/manual/),供读者查询使用。

1.glAccumvoid glAccum ( GLenum op , GLfloat value );参数说明:op 取符号:GL_ACCUM,GL_LOAD,GL_ADD,GL_MULT,GL_RETURN。

value 取一个浮点数,op决定怎样使用value。

功能描述:按参数op指定的方式,在累积缓冲区中进行如下操作GL_ACCUM 从当前选定的缓冲区(缺省值为当前的颜色缓冲区)中逐点读取其R、G、B、A值,该RGBA乘以value加上累积缓冲区中的当前值后,再存入累积缓冲区中保存。

GL_LOAD 从当前选定的缓冲区中逐点读取其R、G、B、A值,该RGBA乘以value 后,再存入累积缓冲区中保存。

GL_ADD 将value直接加到累积缓冲区中每点的RGBA上。

GL_MULT 略。

GL_RETURN 将累积缓冲区中的RGBA乘以value后,送当前颜色缓冲区中显示。

2.glBegin, glEndvoid glBegin ( GLenum mode );参数说明:mode 取符号:GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS,GL_QUAD_STRIP和 GL_POLYGON。

void glEnd (void );功能描述:函数glBegin, glEnd成对出现,用来界定一个或一组类似图形元素顶点数据的开始与结束,图形元素的类型由mode确定。

GL_POINTS 每个顶点函数glVertex()描述了一个个孤立的顶点数据。

基于VC和OpenGL的AFF文件的可视化研究

基于VC和OpenGL的AFF文件的可视化研究熊金;王体泮【摘要】AFF文件包含用于增材制造零件的切片数据及路径规划数据。

该文详细介绍了AFF文件的读取,并利用VS2008平台结合OpenGL编程技术,实现AFF 文件数据的提取以及分层轨迹的二维显示、视角变换、缩放、平移等功能,为进一步实现零件的3D打印加工奠定了基础。

%AFF file contains slice and hatching information about the build job, which is used in ad-ditive manufacturing system. The read method of the AFF file is introduced in this paper, the functions such as two-dimensional display, perspective transformation, zoom, shift are implemented in VS pro-gramming environment combined with OpenGL technology. There functions are laid a foundation to further the realization of the additive manufacturing system.【期刊名称】《工业仪表与自动化装置》【年(卷),期】2016(000)006【总页数】4页(P31-34)【关键词】AFF文件;OpenGL;可视化【作者】熊金;王体泮【作者单位】绵阳市维博电子有限责任公司,四川绵阳621000;绵阳市维博电子有限责任公司,四川绵阳621000【正文语种】中文【中图分类】TP273AutoFab是专门为利用激光进行金属溶化和烧结加工开发金属产品的软件,它是3D设计和增材制造系统之间的桥梁。

西华大学3Dmax复习题及答案

西华⼤学3Dmax复习题及答案单选1、3DS MAX默认的坐标系是( )。

A、世界坐标系B、视图坐标系C、屏幕坐标系D、⽹格坐标系2、3DS MAX软件提供( )种贴图坐标。

7种。

平⾯、柱形、球形、收缩包裹、长⽅体、⾯、XYZ到UVW。

A、5B、6C、7D、83、3DS MAX软件由Auto Desk公司的多媒体分部( )设计完成。

A、DiscreetB、AdobeC、MicrosoftD、Apple4、场景中镜⼦的反射效果,应在"材质与贴图浏览器"中选择( )贴图⽅式。

A、Bitmap(位图)B、Flat Mirror(平⾯镜像)C、Water(⽔)D、Wood(⽊纹)5、下列"锁定"类型正确的有( )。

A、长度锁定B、⾓度锁定C、宽度锁定D、⾼度锁定6、透视图可帮助我们观察( )⾓度的场景。

A、从上往下B、从前往后C、从左往右D、任意7、放样是属于( )中的命令。

C、复合⼏何体D、⼆维线性8、放样中的()⽤于定义物体的放样长度。

A、截⾯B、路径C、线条D、平⾯9、以下不可以产⽣阴影的灯光是()。

A、泛光灯B、⾃由平⾏光灯C、⽬标聚光灯D、天空光10、类似于通过望远镜观察的镜头是( )。

A、长镜头B、短镜头C、⼤镜头D、⼩镜头11、能够根据相机衰减范围产⽣淡⼊淡出效果的是( )。

A、层雾B、标准雾C、体积雾D、体积光12、层级列表中的层次结构属()。

A、树形B、⽹状C、星形D、总线型13、透明贴图⽂件的()表⽰完全透明。

A、⽩⾊B、⿊⾊C、灰⾊D、⿊⽩相间14、⼤⽓装置中需要拾取线框的是()。

A、燃烧和体积光C、雾和体积雾D、体积雾和体积光15、在渲染效果对话框中选择模糊的选项为:( )A、File OutputB、BlurC、Film GrainD、Lens Effects16、在对样条线进⾏布尔运算之前,应确保样条线满⾜⼀些要求。

请问下⾯哪⼀项要求是布尔运算中所不需要的?( )A、样条线必须是同⼀个⼆维图形的⼀部分B、样条线必须封闭C、样条线本⾝不能⾃交D、⼀个样条线需要完全被另外⼀个样条线包围17、File/Save(⽂件/保存)命令可以保存()类型的⽂件A、MAXB、DXFC、DWGD、3DS18、⽤于锁定Y轴的快捷键是:( )A、F5B、F6C、F7D、F819、可以使⽤哪个编辑修改器改变⾯的ID号:( )A、Edit Mesh(编辑⽹格)B、Mesh Select(⽹格选择)C、Mesh Smooth(光滑⽹格物体)D、Edit Spline(编辑曲线)20、3DS MAX的选择区域形状有?( )A、2种B、3种C、4种D、5种21、3DS MAX不能输⼊哪种扩展名的⽂件?( )A、SHP22、Omin是哪⼀种灯光:( )****************************************A、聚光灯B、⽬标聚光灯C、泛光灯D、⽬标平⾏灯23、下⾯哪个命令⽤来输⼊扩展名是DWG的⽂件?( )A、File/OpenB、File/MergeC、File/ImportD、File/Xref Objects24、在标准⼏何体中,唯⼀没有⾼度的物体是()A、BoxB、ConeC、PlaneD、Pyramid25、在放样的过程中,下⾯的哪⼀种⽅法不能够对齐截⾯图形的第⼀点?( )A、对每个截⾯图形就⽤Edit Spline编辑修改器,然后使⽤Make First按钮来指定与其他截⾯对齐的新的第⼀点?B、将每个截⾯图形转换成Editable Spline,然后使⽤Make First按钮来指定与其他截⾯对齐的新的第⼀点C、进⼊Modifu⾯板,打开Sub-Object按钮,选择路径上的截⾯图形,旋转这些图形,直到第⼀点对齐为⽌。

平行光光照算法 公式(一)

平行光光照算法公式(一)平行光光照算法公式一: 计算光强度•输入:入射光方向向量L,光颜色C,表面法向量N,光强度I •输出:该点的光照强度•公式:I = max(0, dot(L, N)) * C公式二: 计算漫反射光照分量•输入:入射光方向向量L,光颜色C,表面法向量N,物体颜色Cd,光强度I•输出:该点的漫反射光照分量•公式:diffuse = I * max(0, dot(L,N)) * Cd * C举例说明:假设物体表面法向量为N=(0, 1, 0),物体颜色Cd为(, , ),入射光方向向量L为(0, -1, 0),光颜色C为(1, 1, 1),光强度I为1。

根据公式一,计算光强度: I = max(0, dot(L, N)) * C =max(0, 0) * (1, 1, 1) = (0, 0, 0)根据公式二,计算漫反射光照分量: diffuse = I * max(0,dot(L,N)) * Cd * C = (0, 0, 0) * max(0, 0) * (, , ) * (1, 1, 1) = (0, 0, 0)由此可见,该点的光照强度为零,漫反射光照分量也为零。

这表示该物体表面在这个入射光方向上不受光照影响,呈现全黑状态。

公式三: 计算镜面反射光照分量•输入:视线方向向量V,入射光方向向量L,表面法向量N,反射系数Ks,高光指数p,光颜色C,光强度I•输出:该点的镜面反射光照分量•公式:specular = I * pow(max(0, dot(R, V)), p) * Ks * C 举例说明:假设物体表面法向量为N=(0, 0, 1),反射系数Ks为,高光指数p为20,视线方向向量V为(0, 0, -1),入射光方向向量L为(, , 0),光颜色C为(1, 1, 1),光强度I为1。

首先计算反射向量R: R = 2dot(N,L)N - L = 2dot((0, 0, 1), (,,0))(0,0,1) - (,,0) = (0,0,)计算反射光线与视线夹角cosθ:cosθ = dot(R, V) =dot((0,0,), (0,0,-1)) =根据公式三,计算镜面反射光照分量: specular = I *pow(max(0, dot(R,V)), p) * Ks * C = 1 * pow(max(0, ), 20) * * (1,1,1) = (, , )由此可见,该点的镜面反射光照分量为(, , )。

水下战场环境虚拟仿真系统

水下战场环境数据库是整个虚拟仿真系统的基础数据 源,主要由海洋自然环境数据库和作战应用产品库组成。
(1)海洋自然环境库,主要包括:温度,盐度,密度和声 速,水色,透明度,海流,海底等数据。
(2)作战应用产品库,主要包括:会聚区参数,中尺度特 征以及环境季节性特征化参数等。 1.3 水声环境仿真平台
水声环境仿真平台主要由水声环境并行仿真系统和作战 应用产品制作系统组成,完成舰艇作战海域三维水声战场环 境的快速、高精度仿真计算以及水声环境作战应用产品制作。
(3)水声环境仿真模型主要包括声线轨迹、声传播、噪声、 声纳探测以及决策参数提取模型等。
(4)虚拟战场环境仿真模型主要包括海浪、海底地形、声 线管束、三维数据场、环境光等可视化模型。
3 关键技术
水声环境仿真及其战场环境体可视化技术是水下战场环 境仿真系统诸多复杂技术中最为关键的 2 大部分。
—222—
可视化仿真训练平台是仿真系统与作战指挥员交互训练 的接口,主要由主控台、态势设定、二维参数分析、作战决 策、三通道可视化显示系统以及人机交互设备组成。
(1)系统主控台主要完成系统仿真过程控制,包括仿真模 型设定、系统同步、仿真进程控制、视景控制、目标跟踪与 绑定、仿真过程复现控制等。
(2) 战 场 态 势 设 定 主 要 完 成 基 于 电 子 海 图 的 战 场 态 势 的 初始化、态势编辑以及仿真过程中的动态显示,包括作战海 域、舰艇类型、位置、运动要素、海况、作战时间等。
2
(
z
,r
)−ν
l2(
r
)⎤⎥⎦2
⎫⎪8 ⎬ ⎪⎭
0
<
z
<η l
η l

z
≤ξ l
ξ l
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实现逐顶点的ambient, diffuse, and specular (ADS) shading
phong 光照模型
本文参照了OpenGL 4.0 Shading Language Cookbook OpenGL 4.0 渲染管线如图:1. shader 数据的输入可以是从OpenGL main application 中输入或者是来自上个渲染管线,例如一个fragment shader 的输入可能来自vertex shader 的output 变量也可能来自程序的uniform 变量。

2. 每个顶点会执行一次vertex shader (通常是并行进行)。

3. 顶点位置在vertex shader中必须被转换到裁剪坐标系(clip coordinates) 并赋值给gl_position 变量。

4. 在vertex shader 和fragment shader之间的渲染管线中,顶点被装配成片元(primiteves) 、然后裁切(clipping) 、应用viewport transformation 、然后进行光栅化和填充多边形(如果需要的话)。

每个多边形的片元fragment 或(像素pixel) 会执行一次fragment shader (通常是并行)----(The fragment shader is executed once for each fragment (pixel) of the polygon being rendered (typically in parallel).
5. 来自vertex shader 的数据默认情况下是通过插值以透视的方式提供给fragment shader 然后fragment shader 确定最终像素的颜色并发送给frame buffer 。

6. 深度值信息被自动处理Implementing per-vertex ambient,diffuse, and specular (ADS)
shadingOpenGL 固定的渲染管线实现了一个默认的光照系
统(和本文的Ads模型类似)它综合了环境光Ambient 、漫反射Diffuse、镜面光Specular。

The ambient component is intended to model light that has been reflected so many times that it appears to be emanating uniformly (均匀地散发)from all directionsThe diffuse component was represents omnidirectional (全方位的)reflection 见用单光源实现逐顶点漫反射光照模型
The specular component models the shininess of the surface and represents reflection around a preferred directionCombining these three components together can model a nice (but limited) variety of surface types. This shading model is also sometimes called thePhong reflection model (or Phong shading model), after Bui Tuong Phong如下图的ADS光照模型ADS光照模型的总强度是Ambient、Diffuse、和Specular的光照强度总和。

The ambient component represents light that illuminates all surfaces equally and reflects equally in all directions。

It is often used to help brighten some of the darker areas within a scene。

由于环境光(Ambient)不受入射光和出射光的影响,因此可以简单的用光源光照密度(La)和物体便面的反射系数(Ka) Diffuse 光照模型镜面反射模型:
计算反射光的公式:要对镜面反射(Specular)建模,需要
这几个向量(都是单位化的),从物体表面到光源的方向向量(S),理想反射光方向向量(r) ,朝向viewer的方向向量(V),和物体表面的法线向量(n),如下图显示We would like the reflection to be maximal when the viewer is aligned with the vector r, and to fall off quickly as the viewer moves further away from alignment with r. This can be modeled using the cosine of the angle between v and r raised to some power (f).The specular component creates specular highlights (bright spots) that are typical of glossy surfaces. The larger the power of f in the equation, the smaller the specular highlight and the shinier the surface appears. The value for f is typically chosen to be somewhere between 1 and 200.最后,最终的ADS光照模型公式如下顶点shader[cpp] view plain copy print?#version 430 layout (location = 0) in vec3 VertexPosition; layout (location = 1) in vec3 VertexNormal; out vec3 LightIntensity; struct LightInfo { vec4 Position; // Light position in eye coords. vec3 La; // Ambient light intensity vec3 Ld; // Diffuse light intensity vec3 Ls; // Specular light intensity }; uniform LightInfo Light; struct MaterialInfo { vec3 Ka; // Ambient reflectivity vec3 Kd; // Diffuse reflectivity vec3 Ks; // Specular reflectivity
float Shininess; // Specular shininess factor }; uniform MaterialInfo Material; uniform mat4 ModelViewMatrix; uniform mat3 NormalMatrix; uniform mat4 ProjectionMatrix; uniform mat4 MVP; void main() { vec3 tnorm = normalize( NormalMatrix * VertexNormal); vec4 eyeCoords = ModelViewMatrix * vec4(VertexPosition,1.0); vec3 s = normalize(vec3(Light.Position - eyeCoords));
vec3 v = normalize(-eyeCoords.xyz); vec3 r = reflect( -s, tnorm ); float sDotN = max( dot(s,tnorm), 0.0 );
vec3 ambient = * Material.Ka; vec3 diffuse = Light.Ld * Material.Kd * sDotN; vec3 spec = vec3(0.0); if( sDotN &gt; 0.0 ) spec = Light.Ls * Material.Ks * pow( max( dot(r,v), 0.0 ), Material.Shininess ); LightIntensity = ambient + diffuse + spec; gl_Position = MVP * vec4(VertexPosition,1.0); } 片元shader[cpp] view plain copy print?#version 430 in vec3 LightIntensity; layout( location = 0 ) out vec4 FragColor; void main() { FragColor = vec4(LightIntensity, 1.0); }。

相关文档
最新文档