浅谈游戏中动静态光照的运用
来源:互联网 发布:真两性畸形 知乎 编辑:程序博客网 时间:2024/05/19 10:12
UE3 的静态光照烘焙贴图分为两种:
一种为 LightingTexture,仅保存光照颜色信息,格式为 DXT1 压缩,因此不包含 alpha 通道。
但是同一个物体被不同光源所影响时可以将它们的 LightingTexture 合并为一张。
一种为 ShadowMapTexture,仅保存光源在当前物体上的投影遮挡信息,格式为 G8,只有灰度。如果一个物体被多个光源所投影,那么针对每个光源都会有一张单独的 ShadowMapTexture。
UE3 的每种光源分为四种子类型:
第一种为 StaticLight 全静态光源(光源位置颜色均不会实时改变),会烘焙 LightingTexture,但使用动态投影。
第二种为 MoveableLight 全动态光源(光源位置颜色均会实时改变),光照投影均为实时计算。
第三种为 ToggleableLight 仅颜色可改变,位置不可改变的光源,会使用 ShadowMapTexture,但不会进行实时光照计算。
第四种为 DominantLight 特性与 ToggleableLight 基本相同,但是同一个物体最多只能被一个 DominantLight 所影响,以保证其不会生成过多的 ShadowMapTextures。
注意:即便场景中没有需要烘焙 LightingTexture 的光源,也有可能为每个物体烘焙一张环境光的 LightingTexture。
如果需要清除以前烘焙过的当前场景没有使用到的光照贴图,可以存储场景,并且重新打开该场景的 Package。
Diablo3 部分光照方案:
地形以很大一个区域进行分割,其上所有地形模型统一使用一张尺寸为 2048x2048 的灰度 LightMap。该 LightMap 使用离线渲染器静态烘焙上光照的强度(无颜色)和间接光照等信息。
动态实时光照为前向渲染的顶点光照,虽然顶点光照有在模型网格较粗略时光照出现大块色斑没有细腻渐变的问题,但是当动态顶点光照计算的颜色混合上前面说的像素级 LightMap 时却能极大程度地缓解该问题,使光照区域变得更加细腻。
除此之外模型网格上也包含顶点颜色信息,其实现可能类似于 UE3 的 MeshPaint 功能。即便是使用同一模型文件的两个场景实体,也可以在场景编辑器中根据其空间位置分别在其上单独绘制顶点颜色通道。以实现美术想要的艺术性色彩控制。
因为暗黑3的视角为2.5D,没有自由视角变化,所以对于场景中的路灯等光源采用绘制一个带 Alpha 渐变的几何体模型方式来模拟光晕。那么在其光晕范围之后的场景物体也会产生一种类似受光的虚假光照效果。
李晨原创
转载请标明,谢谢。
- 浅谈游戏中动静态光照的运用
- D3D中光照的运用
- 游戏中运用脚本语言
- 浅谈游戏中BOSS设计的思路
- 静态方法的运用
- 浅谈在C#开发中运用到的索引器
- 浅谈需求管理中工具运用的误区
- Javascript游戏开发(一) -- 让你的静态人物动起来
- 动静态库的生成
- VS2008的动、静态编译
- VS2008的动、静态编译
- VS2008的动、静态编译
- linux 的动静态库
- 动静态广播的区别
- “牵一发而动全局”onMouseover的灵活运用
- html静态网页制作中div+css的浅运用
- GLSL光照运用
- GLSL光照运用
- HTML5 - Form validation
- openstack nova 基础知识——wsgi
- Junit4笔记-马士兵
- Huffman树与Huffman编码(C语言实现)
- C++发展过程中的杰出人物
- 浅谈游戏中动静态光照的运用
- UDK光照教程
- Lightmass静态全局光照
- Source引擎 光能传递和凹凸贴图的革命性结合
- 预渲染技术
- 光照贴图(Lightmapping)与辐照度(Radiosity)
- 匈牙利命名法
- 历代显卡精彩演示DEMO赏析点评之NV篇
- 基于 Shadow Map 的投影渲染注意事项