- 用户指南
- 资源商店 (Asset Store)
- 资源服务器 (Asset Server)(仅限团队许可证)
- 缓存服务器(仅限团队许可证)
- 幕后场景
- 创建游戏
- 运行时实例化预设 (Prefabs)
- 变换 (Transforms)
- 物理
- 添加随机的游戏元素
- 粒子系统(Particle Systems)
- Mecanim 动画系统
- 旧动画系统
- 导航网格 (Navmesh) 和寻路 (Pathfinding)(仅限专业版 (Pro))
- Sound (音频侦听器)
- 游戏界面元素
- 多玩家联网游戏
- iOS 开发入门
- Android 开发入门
- Blackberry 10 开发入门
- Metro:入门指南
- 本地客户端开发入门
- FAQ
- Advanced
- Vector Cookbook
- 资源包(仅限专业版)
- Graphics Features
- 资源数据库 (AssetDatabase)
- 构建播放器管道
- 分析器(仅限专业版)
- 光照贴图快速入门
- 遮挡剔除(仅限专业版)
- 相机使用技巧
- 运行时加载资源
- 通过脚本修改源资源
- 用程序生成网格几何体
- 富文本
- 在 Unity 工程 (Project) 中使用 Mono DLL
- 事件函数的执行顺序
- 移动优化实用指南
- Unity XCode 工程结构
- 优化图形性能
- 减少文件大小
- 理解自动内存管理
- 平台依赖编译
- 泛型函数
- 调试
- 插件(专业版/移动版特有功能)
- 文本场景文件格式(仅限专业版)
- 流媒体资源
- 启动时运行编辑器脚本代码
- 网络模拟
- VisualStudio C 集成
- 分析
- 检查更新
- 安装多版本 Unity
- 故障排除
- Unity 中的阴影
- Unity 中的 IME
- 对集成显卡进行优化
- 网络播放器 (Web Player) 部署
- 使用网络播放器中的信任链系统
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
渲染升级细节
Unity 3 进行了许多图形相关的更改,某些事项有必要在升级现有的 Unity 2.x 工程时进行调整。如需了解着色器的相关更改,请参阅 着色器升级指南。
向前渲染路径更改
Unity 2.x 拥有一个渲染路径,在 Unity 3 中称为向前 (Forward)。与 Unity 2.x 相比,这部分有了重大改变:
- 最常见的情况(一个方向逐像素灯)是现在用单程 (one pass) 绘制!(以前是双程)
- 不支持点光源和聚光灯阴影。只有一个方向灯可以投射阴影。如果需要更多阴影,请使用延迟照明 (Deferred Lighting)。
- 大部分“顶点 (Vertex)” 灯替换为球面谐波照明。
- 向前渲染路径现在完全基于着色器,所以可以在 OpenGL ES 2.0、Xbox 360、PS3(如不支持固定功能渲染的平台)上工作。
着色器更改
请参阅着色器升级指南了解更多详情。 最大的更改是:如果想编写与灯光交互的着色器,应使用表面着色器 (Surface Shaders)。
没人会注意到的图形卡模糊变化 (Obscure Graphics Changes That No One Will Probably Notice TM)
- 已删除 Mac Radeon 9200 像素着色器支持(
!!ATIfs
程序集着色器)。 - 已删除对前 ShaderModel2.0 硬件的逐像素照明支持。因此,Diffuse Fast 着色器现在只是顶点照明 (VertexLit)。
- 已删除不衰弱灯光。所有点光源和聚光灯现都已衰弱。
- 已删除脚本回调:
OnPreCullObject
和RenderBeforeQueues
属性。 - 已删除基于 P 缓冲区的 RenderTextures。OpenGL 上的 RenderTextures 现在要求 FBO 支持。
- 大部分 Pass LightMode 标签都已消失,并替换上新标签。无论如何,用户一般应使用表面着色器 (Surface Shaders) 进行。
- 纹理 instanceID 不再是 OpenGL 纹理名称。可能影响依赖它们的 C++ 插件,请使用
texture.GetNativeTextureID()
。 - 将着色器关键字 SHADOWS_NATIVE 重命名为 SHADOWS_DEPTH,SHADOWS_PCF4 重命名为 SHADOWS_SOFT。
- 已删除受 8 个以上顶点灯影响对象的环境增强效果。
- 已删除
_ObjectSpaceCameraPos
和_ObjectSpaceLightPos0
(新增_WorldSpaceCameraPos
和_WorldSpaceLightPos0
)。 - 着色器纹理属性中的
LightmapMode
标签现已不起作用。 - 天空盒着色器不写入深度缓存。
GrabPass
(如折射玻璃着色器)现在始终抓取屏幕大小的纹理。#pragma multi_compile_vertex
和#pragma multi_compile_fragment
消失。- ShaderLab 中的多边形偏移无法再引用变量(如
Offset [_Var1], [_Var2]
)。 - 将
TRANSFER_EYEDEPTH/OUTPUT_EYEDEPTH
重命名为UNITY_TRANSFER_DEPTH/UNITY_OUTPUT_DEPTH
。它们也在 Unity 3 的 float2 中起作用。 - 已删除特殊着色器的 pass 类型:R2TPass、OffscreenPass。
- 已删除
_Light2World0
、_World2Light0
内置着色器矩阵。 - 已删除 _SceneAmbient、_MultiModelAmbient、_MultiAmbient、_ModelAmbient、_MultiplyFog、_LightHackedDiffuse0、_ObjectCenterModelLightColor0 内置着色器矢量。
- 已删除
_FirstPass
内置着色器浮点。 - 阴影文件中的雾模式无法来自变量(如
Fog { Mode [_MyFogMode] }
)。如需使用全局雾模式,请写入Fog { Mode Global }
。 - 已从 ShaderLab 中删除
BlendColor
颜色。 - 已删除着色器属性中的说明纹理矩阵按值支持。
- 已删除“静态 (static)” 着色器属性支持。
- 已删除纹理边框颜色支持 (
RenderTexture.SetBorderColor
)。 - 已删除
ColorMaterial Ambient, Diffuse, Specular
支持(剩下 ColorMaterial AmbientAndDiffuse 和 Emission)。对已删除项的支持根据平台造成的混乱情况的不同而有较大差异,但这些似乎并没有太大用处。 - 内置
_CameraToWorld
和_WorldToCamera
矩阵现在将按期望工作。之前,它们只包含转动部分,全球相机在 Y 轴上翻动。我们也不知道是怎么回事 :) - 已删除
Shader.ClearAll()
。2007 年开始弃用,可以不再关注。 - 顶点着色器现已编译至 Shader Model 2.0(以前为 1.1)。如果想编译至 SM1.1,请在着色器中新增
#pragma target 1.1
。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论