Unity3D
来源:互联网 发布:淮南大数据小镇规划 编辑:程序博客网 时间:2024/06/06 13:01
创建Shader
- Assest -> Create -> Shader,可以创建一个Shader。
- Unity提供了丰富的内建Shader,基本上满足普通的开发需求。
- 编写Shader需要对OpenGL或Direct3D的渲染状态有基本的了解,以及一些固定功能管线、可编程管线、Cg/HLSL/GLSL编程语言知识。
- 使用哪种Shader需要根据游戏的画面要求以及游戏的运行硬件平台来决定。这3中Shader也可以再游戏项目中一起使用。无论是那种Shader,实际的Shader代码(比如Cg、HLSL)都需要嵌在ShaderLab代码中,Unity需要通过ShaderLab代码来组织Shader的结构。
// Shader的名称Shader "MyShader" { Properties { // 在这里定义Shader中使用的属性,例如用颜色、向量、纹理 _MyTexture ("My Texture",2D) = "white" {} } SubShader { // 在这里编写Shader的实现代码 // 包括表面着色器、顶点、片段着色器的Cg、HLSL代码 // 或者是固定功能管线着色器的ShaderLab代码 } SubShader { // 在这里实现简化版的备选Shader,用于在不支持高级Shader的老硬件设备上 }}
Shader类型
- 表面着色器(Surface Shaders):通常情况下用户都会使用这种Shader,它可以与灯光、阴影、投影器进行交互。表面着色器的层次比较高,它可以容易的以简洁的方式实现出复杂的着色器效果。表面着色器可以同时正常工作在向前渲染以及延迟渲染模式下。表面着色器以Cg、HLSL语言进行编写。
- 顶点和片段着色器(Vertex and fragment Shaders):如果需要一些表面着色器无法处理的酷炫效果,或者是写的Shader不需要与灯光进行交互,或者想要的只是全屏图像效果,那么可以使用定点和片段着色器。这种Shader可以非常灵活的实现需要的效果,但是需要编写更多的代码。顶点和片段着色器需要使用Cg、HLSL语言来编写。
- 固定功能管线着色器(Fixed Function Shaders):如果游戏需要运行在不支持可编程管线的老旧硬件上,那么就需要写这种Shader了。
阅读全文
0 0
- Unity3D
- Unity3D
- Unity3D
- Unity3D
- unity3d
- Unity3D
- Unity3D
- Unity3D
- UNITY3D
- Unity3D
- unity3d
- unity3D
- Unity3D
- Unity3d
- Unity3D
- unity3D
- unity3D
- Unity3D
- 33.List的一阶函数操作代码实战详解
- JS中判断字符串中出现次数最多的字符及出现的次数
- caffe 训练log可视化
- Spring--事务管理
- 9月3日训练日记
- Unity3D
- Tensorflow训练卷积神经网络并保存模型,加载模型并导入手写图片测试
- 20170903
- Oracle数据库CPU使用率过高问题处理
- Redis学习
- 前台学习随手记
- 深入理解JAVA虚拟机读书笔记----走进JAVA
- Linux下的查看文件格式命令:file
- maven 阿里云 国内镜像 中央仓库 亲测可用