Game101现代计算机图形学入门学习笔记(七)

一、光线追踪

1、为什么要使用光线追踪?

  • 光栅化无法处理好全局信息进行渲染的效果,如软阴影、Glossy反射、间接光照
  • 光栅化速度很快,但质量相对较低。而光线追踪质量精确,速度慢。
  • 光栅化是实时的,光线追踪是离线的。

二、基础光线追踪算法

1、光线

该课程对光线概念的假设:

  • 光线沿直线传播
  • 光线之间不会碰撞
  • 光线从光源出发最后到达人眼。(光线的可逆性,沿着传播路径往回寻找,也一定能找到光源。)

2、光线投射

1、从相机位置,向每个像素投射一条光线用于成像。
2、从像素中对应物体的每个位置投射回光线,检查是否在阴影中。

1、着色过程

从视点发射一条光线,通过成像平面(某个像素)投射至物体,然后从物体发出光线至光源检查其是否在阴影中,如果不在阴影中,就可以通过着色方案对这个像素进行着色。
在这里插入图片描述

3、递归光线追踪 (Whitted-Style)

1、基本过程

1、从视点从成像平面发出光线,检测是否与物体碰撞
2、如果有碰撞,根据权值生成折射和反射部分
3、递归计算生成的光线
4、所有光线交点在检测到达光源后,都与光源计算一次着色
5、将所有着色通过某种加权叠加起来,得到最终成像平面上的像素的颜色
在这里插入图片描述

2、光线-表面相交

1、光线方程

光线:有一个起点和其方向向量。
r ( t ) = o + t d ⃗ , 0 ≤ t < ∞ r(t)=o+t\vec{d},0\leq t<\infty r(t)=o+td ,0t<,t为时间

  • 与球体相交
    球体:表面点p到圆心的方程:
    ( p − c ) 2 − R 2 = 0 (p-c)^2-R^2=0 (pc)2R2=0
    交点即在光线上又在球体表面上。
    ( o + t d ⃗ − c ) 2 − R 2 = 0 (o+t\vec{d}-c)^2-R^2=0 (o+td c)2R2=0
    a = d ⋅ d a=d \cdot d a=dd
    b = 2 ( o − c ) ⋅ d b=2(o-c)\cdot d b=2(oc)d
    c = ( o − c ) 2 − R 2 c=(o-c)^2-R^2 c=(oc)2R2
    t = − b ± b 2 − 4 b a 2 a t=\frac{-b\pm\sqrt{b^2-4ba}}{2a} t=2ab±b24ba
  • 与隐式平面相交
    隐式平面: f ( p ) = 0 f( p)=0 f(p)=0
    f ( o + t d ⃗ ) = 0 f(o+t\vec{d})=0 f(o+td )=0
  • 与三角形相交
    • 先计算出与平面相交的点,再判断是否在三角形内
    • Möller Trumbore Algorithm
      加速方法:如果光线落在三角形内,则可以通过重心坐标表示。
      在这里插入图片描述

3、轴对称包围盒(AABB)

先判断光线与包围物体的盒子来粗略判定光线是否与物体相交,再精确判断是否与物体相交。
t e n t e r = m a x ( t m i n ) t_{enter}=max(t_{min}) tenter=max(tmin)
t e x i t = m i n ( t m a x ) t_{exit}=min(t_{max}) texit=min(tmax)

  • t e x i t t_{exit} texit<0,包围盒在光线后面,没有相交
  • t e x i t t_{exit} texit>0, t e n t e r t_{enter} tenter<0,光线在包围盒里面,有交点
  • 光线与包围盒相交当且仅当 t e n t e r t_{enter} tenter< t e x i t t_{exit} texit&& t e x i t t_{exit} texit>0

1、Uniform grids

将包围盒划分成很多个大小相同的格子,然后判断光线与格子的相交情况,再判断与格子内物体的相交情况。
步骤:
1、找到包围盒。
2、划分成一个个格子。
3、光线与物体相交的格子填好。
适合物体较为密集的场景。
缺点:
1、受分辨率影响,分辨率太小就失去了划分的意义,分辨率太大也不好。
2、不适合物体较为稀疏的场景,浪费大量时间在光线与格子的求交上。

2、空间划分

通常有 八叉树 、KD树 以及 BSP树 三种划分方案。

  • 八叉树: 每次迭代都将区域重新切分为均匀四块,按一定规则停止切分。
  • BSP树:每次都是沿着一定方向进行切分(非水平或竖直)
  • KD树预处理
    每次划分都会生成新的两块区域,然后再在两块区域内进行划分,直至满足递归截止条件。
    数据结构:
    在这里插入图片描述

中间节点存储了:
1、划分后的轴
2、划分后的切分平面
3、子节点的指针
叶子节点存储了区域中包含的物体

遍历过程:
1、发射光线从根节点出发,分别判断光线与左右节点是否相交,若相交则进入下一步;否则,则与节点不相交
2、递归判断相交直至叶子节点,若与叶子节点相交,进入下一步
3、依次判断叶子节点存储物体与光线的相交情况

缺点:
1、建立过程中需要考虑三角形与包围盒的求交问题
2、物体可能与多个包围盒相交

3、BVH(物体划分)

在场景中对物体进行划分。
本质是将一个场景用一个包围盒包住,然后按照一定划分方案将盒子划分成不同的子区域,不同子区域都需要包含三角形,最终划分到叶子节点时,每个叶子节点就包含了一些三角形,即包含了对应的一些物体。
过程
1、找到包围盒。
2、递归地将包围盒划分成包含一些物体的子集(课程上的划分规则是沿着三角形分布的最长的轴)
3、重新计算子集的包围盒。
4、达到递归结束条件就停止。

如何划分节点
1、按轴的次序划分
2、按最长轴划分
3、在物体三角形数目的最中间对物体进行划分(最中间指的是划分后,两边的三角形数目基本一致)

数据结构
中间节点:该节点对应的包围盒和子节点的指针
叶子节点:该节点对应的包围盒和包围盒里面的物体
遍历过程就是递归的,类似于遍历二叉树。

4、比较

  • 空间划分
    1、没有重叠区域。
    2、一个物体可能在多个区域中。
  • 物体划分
    1、划分物体到独立的子集中。
    2、每个子集的包围盒可能存在重叠的情况。

四、辐射度量学

1、为什么需要辐射度量学

因为需要对物理世界的光做更加真实的描述,而辐射度量学是具有物理意义的,它相较于 blinn phong 等光照模型,能够更加精确、真实地描述光照 。

2、概念介绍

1、Radiant Energy

电磁辐射的能量,单位用焦耳表示
Q [ J = J o u l e ] Q[J=Joule] Q[J=Joule]

2、Radiant flux

单位时间的能量。
Φ = d Q d t [ W = W a t t ] [ l m = l u m e n ] \Phi=\frac{dQ}{dt}[W=Watt][lm=lumen] Φ=dtdQ[W=Watt][lm=lumen]

3、Radiant Intensity

每单位立体角的能量。
立体角:球面上的面积与半径平方之比。
Ω = A r 2 \Omega=\frac{A}{r^2} Ω=r2A

4、Irradiance

单位区域面积、单位时间内接收到的辐射能量
E ( x ) = d x d A E(x)=\frac{dx}{dA} E(x)=dAdx

  • 兰贝特余弦定律
    平面上的Irradiance与光线和平面法线的夹角余弦。
    在这里插入图片描述
    当光源离物体表面越远,角度是不变的,但辐射到的面积却是增大的,所以 irradiance 是逐渐衰减的。而Radiant Intensity只跟角度有关,不变。

5、Radiance

用来描述环境中的光线的分布

  • 与光线有关的属性
  • 渲染是在计算radiance
    是指单位立体角单位投影面积所辐射的能量
    在这里插入图片描述
    L ( p , w ) = d 2 Φ ( p , w ) d w d A c o s θ L(p,w)=\frac{d^{2}\Phi(p,w) }{dwdA cos\theta} L(p,w)=dwdAcosθd2Φ(p,w)
    可以理解为:每单位立体角上的Irradiance,每单位面积上的Radiant Intensity
  • Incident Radiance
    光源到达物体时每单位立体角的能量。(与入射有关)
    在这里插入图片描述
    L ( p , w ) = d E ( p ) d w c o s θ L(p,w)=\frac{dE(p)}{dw cos\theta} L(p,w)=dwcosθdE(p)
  • Exiting Radiance
    每单位面积离开物体表面的能量。(与出射有关)
    在这里插入图片描述
    L ( p , w ) = I ( p , w ) d A c o s θ L(p,w)=\frac{I(p,w)}{dA cos\theta} L(p,w)=dAcosθI(p,w)

6、Irradiance和Radiance

d E ( p , w ) = L i ( p , w ) c o s θ d w dE(p,w)=L_i(p,w)cos\theta dw dE(p,w)=Li(p,w)cosθdw
E ( p ) = ∫ H 2 L i ( p , w ) c o s θ d w E(p)=\int_{H^2}L_i(p,w)cos\theta dw E(p)=H2Li(p,w)cosθdw
Irradiance就相当于单位面积上收到的所有方向上的能量。
在这里插入图片描述

3、双向反射分布函数(BRDF)

解决从某个方向辐射到表面的能量,它所反射到其他方向的能量分布问题。

1、反射方程

在这里插入图片描述
L r ( p , w r ) = ∫ H 2 f r ( p , w i → w r ) L i ( p , w i ) c o s ( θ i ) d w i L_r(p,w_r)=\int_{H^2}fr(p,w_i \rightarrow w_r)L_i(p,w_i)cos(\theta_i)dw_i Lr(p,wr)=H2fr(p,wiwr)Li(p,wi)cos(θi)dwi
挑战:递归 方程
反射radiance来自入射的radiance,入射的radiance除了来自光源还有来自其他点反射的radiance。

2、渲染方程

L o ( p , w o ) = L e ( p , w o ) + ∫ Ω + f r ( p , w i , w o ) L i ( p , w i ) ( n , w i ) d w i L_o(p,w_o)=L_e(p,w_o)+\int_{\Omega+}fr(p,w_i ,w_o)L_i(p,w_i)(n,w_i)dw_i Lo(p,wo)=Le(p,wo)+Ω+fr(p,wi,wo)Li(p,wi)(n,wi)dwi
L e ( p , w o ) L_e(p,w_o) Le(p,wo):物体自身发光。
当光源为点光源:
在这里插入图片描述
L r ( x , w r ) = L e ( x , w r ) + ∑ f ( p , w i , w r ) L i ( x , w i ) ( n , w i ) ( w i , n ) L_r(x,w_r)=L_e(x,w_r)+\sum f(p,w_i ,w_r)L_i(x,w_i)(n,w_i)(w_i,n) Lr(x,wr)=Le(x,wr)+f(p,wi,wr)Li(x,wi)(n,wi)(wi,n)
当光源为面光源:
L r ( x , w r ) = L e ( x , w r ) + ∫ Ω f r ( x , w i , w r ) L i ( x , w i ) c o s ( θ i ) d w i L_r(x,w_r)=L_e(x,w_r)+\int_{\Omega}fr(x,w_i ,w_r)L_i(x,w_i)cos(\theta_i)dw_i Lr(x,wr)=Le(x,wr)+Ωfr(x,wi,wr)Li(x,wi)cos(θi)dwi
可以简化为如下形式 ,K 是反射操作符, E 为自发光项,L 为辐射出来的能量:
L = E + K L → L = ( I + K + K 2 + …   ) E L=E+KL \rightarrow L=(I+K+K^2+\dots)E L=E+KLL=(I+K+K2+)E

3、全局光照

直接光照(KE)+间接光照( ( K 2 + …   ) E (K^2+\dots)E (K2+)E)。

五、蒙特卡洛积分

1、为什么

因为精确积分比较困难。

2、定义

  • 一种近似求解积分的方法
  • 它在所求定积分的函数中随机取样多次,分别对取样得到的 f(x) 值和定积分上下限的矩形求面积,然后将这些面积平均,以近似求解定积分。

3、做法

定义积分: ∫ b a f ( x ) d x \int^{a}_bf(x)dx baf(x)dx
随机值: X i ∼ p ( x i ) X_i \sim p(x_i) Xip(xi)
蒙特卡洛估计: F N = 1 N ∑ i = 1 N f ( X i ) p ( X i ) F_N=\frac{1}{N}\sum^N_{i=1}\frac{f(X_i)}{p(X_i)} FN=N1i=1Np(Xi)f(Xi)
采样越多,方差越小。
在x上采样,在x上积分。

六、路径追踪

1、为什么

whitted型光线追踪总是在镜面平面发生反射,在漫反射平面不发生反射,不适合glossy材质物体。
对于以上问题,渲染方程是对的。

2、做法

1、蒙特卡洛积分近似

不考虑自身发光,渲染方程:
L o ( p , w o ) = ∫ Ω + f r ( p , w i , w o ) L i ( p , w i ) ( n , w i ) d w i L_o(p,w_o) =\int_{\Omega+}fr(p,w_i ,w_o)L_i(p,w_i)(n,w_i)dw_i Lo(p,wo)=Ω+fr(p,wi,wo)Li(p,wi)(n,wi)dwi

f ( x ) 是 f r ( p , w i , w o ) L i ( p , w i ) ( n , w i ) f(x)是fr(p,w_i ,w_o)L_i(p,w_i)(n,w_i) f(x)fr(p,wi,wo)Li(p,wi)(n,wi)
pdf就是采样方式 ,如何进行采样。
这里使用均匀采样 p d f ( x ) 就 是 1 2 π pdf(x)就是\frac{1}{2\pi} pdf(x)2π1
L o ( p , w o ) = ∫ Ω + f r ( p , w i , w o ) L i ( p , w i ) ( n , w i ) d w i ≈ 1 N ∑ i = 1 N f r ( p , w i , w o ) L i ( p , w i ) ( n , w i ) p d f ( w i ) L_o(p,w_o) =\int_{\Omega+}fr(p,w_i ,w_o)L_i(p,w_i)(n,w_i)dw_i\approx \frac{1}{N}\sum^N_{i=1}\frac{fr(p,w_i ,w_o)L_i(p,w_i)(n,w_i)}{pdf(w_i)} Lo(p,wo)=Ω+fr(p,wi,wo)Li(p,wi)(n,wi)dwiN1i=1Npdf(wi)fr(p,wi,wo)Li(p,wi)(n,wi)
过程:
1、随机采样N个入射方向。
2、判断每一条光线是否能反向打到光源,能则代入公式计算,累加。
3、返回结果
在这里插入图片描述
以上是只考虑了直接光照,还要考虑间接光照,继而形成全局光照。
要加上入射光线是否能反向打到某个物体,如果能,则要计算相应的结果。
在这里插入图片描述

2、问题:假设有N根光线,反射M次,对于一个像素的射线是 N M N^M NM,指数级增加且计算量大。

仅仅使用一根光线,即采样一次。
在这里插入图片描述
N=1就是路径追踪, N ≠ 1 N\not=1 N=1是分布式路径追踪。

对于一个像素选取不同的位置打入射线以求解着色:
1、在一个像素内,取N个不同位置。
2、每个位置与摄像机相连,如果达到某个物体,就要计算着色。
在这里插入图片描述

3、问题:算法什么时候停止?

现实中光线弹射是不会停止,不能限制弹射次数。

引入俄罗斯轮盘赌RR,类似p-坚持型CSMA,p概率发射光线,要么不发射光线。期望是 E = P ∗ ( L o / P ) + ( 1 − P ) ∗ 0 = L o E=P*(L_o/P)+(1-P)*0=L_o E=P(Lo/P)+(1P)0=Lo
在这里插入图片描述

4、问题:光线在从物体打到光源是存在一定概率的,它与光源自身大小相关,如果光源过小,会使得大量光线无法打到光源

从光源进行采样。
蒙特卡洛积分要求在x上采样,在x上积分。
改写在物体上积分,改成在光源积分:
在这里插入图片描述
将radiance分成两部份:

  • 直接光照(不需要RR)
  • 间接光照(采用RR)
    在这里插入图片描述

5、问题:光线会被物体挡住

连接像素与光源,判断路径上是否有其他物体。

七、参考和引用

[1] bilibili:GAMES101-现代计算机图形学入门-闫令琪
[2] 光线追踪(基本原理).pdf
[3] 计算机图形学九:几何1—隐式曲面(代数形式,CSG, 距离函数,分型几何)与显式曲面
[4]CSDN:GAMES101-现代计算机图形学学习笔记(13)
[5]计算机图形学十:几何2—贝塞尔曲线(Bézier Curves)与贝塞尔曲面(Bézier Surfaces)
[6] 光线追踪(加速结构).pdf
[7] 光线追踪(辐射度量学、渲染方程与全局光照).pdf
[8]计算机图形学十一:几何3—曲面细分(Mesh subdivision)与曲面简化(Mesh Smplication)
[9] 光线追踪(蒙特卡洛积分与路径追踪) .pdf
[10] CSDN:GAMES101-现代计算机图形学学习笔记(14)
[11] CSDN:GAMES101-现代计算机图形学学习笔记(15)
[12] CSDN:GAMES101-现代计算机图形学学习笔记(16)

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
第1章绪论 1.1计算机图形学及其相关概念 1.2计算机图形学的发展 1.2.1计算机图形学学科的发展 1.2.2图形硬件设备的发展 1.2.3图形软件的发展 1.3计算机图形学的应用 1.3.1计算机辅助设计与制造 1.3.2计算机辅助绘图 1.3.3计算机辅助教学 1.3.4办公自动化和电子出版技术 1.3.5计算机艺术 1.3.6在工业控制及交通方面的应用 1.3.7在医疗卫生方面的应用 1.3.8图形用户界面 1.4计算机图形学研究动态 1.4.1计算机动画 1.4.2地理信息系统 1.4.3人机交互 1.4.4真实感图形显示 1.4.5虚拟现实 1.4.6科学计算可视化 1.4.7并行图形处理 第2章计算机图形系统及图形硬件 2.1计算机图形系统概述 2.1.1计算机图形系统的功能 2.1.2计算机图形系统的结构 2.2图形输入设备 2.2.1键盘 2.2.2鼠标器 2.2.3光笔 2.2.4触摸屏 2.2.5操纵杆 2.2.6跟踪球和空间球 2.2.7数据手套 2.2.8数字化仪 2.2.9图像扫描仪 2.2.10声频输入系统 2.2.11视频输入系统 2.3图形显示设备 2.3.1阴极射线管 2.3.2CRT图形显示器 2.3.3平板显示器 2.3.4三维观察设备 2.4图形显示子系统 2.4.1光栅扫描图形显示子系统的结构 2.4.2绘制流水线 2.4.3相关概念 2.5图形硬拷贝设备 2.5.1打印机 2.5.2绘图仪 2.6OpenGL图形软件包 2.6.1OpenGL的主要功能 2.6.2OpenGL的绘制流程 2.6.3OpenGL的基本语法 2.6.4一个完整的OpenGL程序 第3章用户接口与交互式技术 3.1用户接口设计 3.1.1用户模型 3.1.2显示屏幕的有效利用 3.1.3反馈 3.1.4一致性原则 3.1.5减少记忆量 3.1.6回退和出错处理 3.1.7联机帮助 3.1.8视觉效果设计 3.1.9适应不同的用户 3.2逻辑输入设备与输入处理 3.2.1逻辑输入设备 3.2.2输入模式 3.3交互式绘图技术 3.3.1基本交互式绘图技术 3.3.2三维交互技术 3.4OpenGL中橡皮筋技术的实现 3.4.1基于鼠标的实现 3.4.2基于键盘的实现 3.5OpenGL中拾取操作的实现 3.6OpenGL的菜单功能 第4章图形的表示与数据结构 4.1基本概念 4.1.1基本图形元素 4.1.2几何信息与拓扑信息 4.1.3坐标系 4.1.4实体的定义 4.1.5正则集合运算 4.1.6平面多面体与欧拉公式 4.2三维形体的表示 4.2.1多边形表面模型 4.2.2扫描表示 4.2.3构造实体几何法 4.2.4空间位置枚举表示 4.2.5八叉树 4.2.6BSP树 4.2.7OpenGL中的实体模型函数 4.3非规则对象的表示 4.3.1分形几何 4.3.2形状语法 4.3.3粒子系统 4.3.4基于物理的建模 4.3.5数据场的可视化 4.4层次建模 4.4.1段与层次建模 4.4.2层次模型的实现 4.4.3OpenGL中层次模型的实现 第5章基本图形生成算法 5.1直线的扫描转换 5.1.1数值微分法 5.1.2中点Bresenham算法 5.1.3Bresenham算法 5.2圆的扫描转换 5.2.1八分法画圆 5.2.2中点Bresenham画圆算法 5.3椭圆的扫描转换 5.3.1椭圆的特征 5.3.2椭圆的中点Bresenham算法 5.4多边形的扫描转换与区域填充 5.4.1多边形的扫描转换 5.4.2边缘填充算法 5.4.3区域填充 5.4.4其他相关概念 5.5字符处理 5.5.1点阵字符 5.5.2矢量字符 5.6属性处理 5.6.1线型和线宽 5.6.2字符的属性 5.6.3区域填充的属性 5.7反走样 5.7.1过取样 5.7.2简单的区域取样 5.7.3加权区域取样 5.8在OpenGL中绘制图形 5.8.1点的绘制 5.8.2直线的绘制 5.8.3多边形面的绘制 5.8.4OpenGL中的字符函数 5.8.5OpenGL中的反走样 第6章二维变换及二维观察 6.1基本概念 6.2基本几何变换 6.2.1平移变换 6.2.2比例变换 6.2.3旋转变换 6.2.4对称变换 6.2.5错切变换 6.2.6二维图形几何变换的计算 6.3复合变换 6.3.1二维复合平移变换和比例变换 6.3.2二维复合旋转变换 6.3.4其他二维复合变换 6.3.5相对任一参考点的二维几何变换 6.3.6相对于任意方向的二维几何变换 6.3.7坐标系之间的变换 6.3.8光栅变换 6.3.9变换的性质 6.4二维观察 6.4.1基本概念 6.4.2?用户坐标系到观察坐标系的变换 6.4.3?窗口到视区的变换 6.5?裁剪 6.5.1?点的裁剪 6.5.2直线段的裁剪 6.5.3多边形的裁剪 6.5.4其他裁剪 6.6OpenGL中的二维观察变换 第7章三维变换及三维观察 7.1三维变换的基本概念 7.1.1几何变换 7.1.2三维齐次坐标变换矩阵 7.1.3平面几何投影 7.2三维几何变换 7.2.1三维基本几何变换 7.2.2三维复合变换 7.3三维投影变换 7.3.1正投影 7.3.2斜投影 7.4透视投影 7.4.1一点透视 7.4.2二点透视 7.4.3三点透视 7.5观察坐标系及观察空间 7.5.1观察坐标系 7.5.2观察空间 7.6三维观察流程 7.6.1用户坐标系到观察坐标系的变换 7.6.2平行投影的规范化投影变换 7.6.3透视投影的规范化投影变换 7.7三维裁剪 7.7.1关于规范化观察空间的裁剪 7.7.2齐次坐标空间的裁剪 7.8OpenGL中的变换 7.8.1矩阵堆栈 7.8.2模型视图变换 7.8.3投影变换 7.8.4实例 第8章曲线与曲面 8.1基本概念 8.1.1曲线/曲面数学描述的发展 8.1.2曲线/曲面的表示要求 8.1.3曲线/曲面的表示 8.1.4插值与逼近 8.1.5连续性条件 8.1.6样条描述 8.2三次样条 8.2.1自然三次样条 8.2.2Hermite插值样条 8.3Bezier曲线/曲面 8.3.1Bezier曲线的定义 8.3.2Bezier曲线的性质 8.3.3Bezier曲线的生成 8.3.4Bezier曲面 8.4B样条曲线/曲面 8.4.1B样条曲线 8.4.2B样条曲线的性质 8.4.3B样条曲面 8.5有理样条曲线/曲面 8.5.1NURBS曲线/曲面的定义 8.5.2有理基函数的性质 8.5.3NURBS曲线/曲面的特点 8.6曲线/曲面的转换和计算 8.6.1样条曲线/曲面的转换 8.6.2样条曲线/曲面的离散生成 8.7OpenGL生成曲线/曲面 8.7.1Bezier曲线/曲面函数 8.7.2GLU中的B样条曲线/曲面函数 第9章消隐 9.1深度缓存器算法 9.2区间扫描线算法 9.3深度排序算法 9.4区域细分算法 9.5光线投射算法 9.6BSP树 9.7多边形区域排序算法 9.8OpenGL中的消隐处理 第10章真实感图形绘制 10.1简单光照模型 10.1.1环境光 10.1.2漫反射光 10.1.3镜面反射光 10.1.4光强衰减 10.1.5颜色 10.2基于简单光照模型的多边形绘制 10.2.1恒定光强的多边形绘制 10.2.2Gouraud明暗处理 10.2.3Phong明暗处理 10.3透明处理 10.4产生阴影 10.5模拟景物表面细节 10.5.1用多边形模拟表面细节 10.5.2纹理的定义和映射 10.5.3凹凸映射 10.6整体光照模型与光线追踪 10.6.1整体光照模型 10.6.2Whitted光照模型 10.6.3光线跟踪算法 10.6.4光线跟踪反走样 10.7 OpenGL中的光照与表面绘制函数 10.7.1 OpenGL点光源 10.7.2 OpenGL全局光照 10.7.3 OpenGL表面材质 10.7.4 OpenGL透明处理 10.7.5 OpenGL表面绘制 10.7.6 实例 10.8 OpenGL中的纹理映射
学习Unity3D时,以下是一些重要的笔记: 1. Unity3D基础知识: - 游戏对象(Game Objects)和组件(Components):了解游戏对象的层次结构和组件的作用。 - 场景(Scenes)和摄像机(Cameras):学会如何创建场景并设置摄像机视角。 - 材质(Materials)和纹理(Textures):掌握如何创建和应用材质和纹理。 - 动画(Animations):学习如何创建和控制游戏对象的动画。 2. 脚本编程: - C#语言基础:了解C#语言的基本语法和面向对象编程概念。 - Unity脚本编写:学习如何编写脚本来控制游戏对象的行为和交互。 - 常见组件和功能:掌握常见的Unity组件和功能,如碰撞器(Colliders)、刚体(Rigidbodies)、触发器(Triggers)等。 3. 游戏开发流程: - 设计游戏关卡:了解如何设计游戏场景和关卡,包括布局、道具、敌人等。 - 游戏逻辑实现:将游戏规则和玩家交互转化为代码实现。 - UI界面设计:学习如何设计游戏中的用户界面,包括菜单、计分板等。 - 游戏优化和调试:优化游戏性能,解决常见的错误和问题。 4. 学习资源: - Unity官方文档和教程:官方提供了大量的文档和教程,逐步引导你学习Unity3D。 - 在线教程和视频教程:网上有很多免费和付费的Unity教程和视频教程,可根据自己的需求选择学习。 - 社区论坛和博客:加入Unity开发者社区,与其他开发者交流并获取帮助。 通过系统地学习这些内容,你将能够掌握Unity3D的基础知识并开始开发自己的游戏项目。记得不断实践和尝试,不断提升自己的技能!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值