Unity cg vertex and fragment shaders(一)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Unity cg vertex and fragment shaders(一),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2256字,纯文字阅读大概需要4分钟。
内容图文
![Unity cg vertex and fragment shaders(一)](/upload/InfoBanner/zyjiaocheng/1236/27343d4e24b144cb9581c2e0f8992f9f.jpg)
cg片段
Cg程序片段写CGPROGRAM和ENDCG之间
开始时的片段可以作为#pragma语句编译指令
Pass { // ... the usual pass state setup ... CGPROGRAM // compilation directives for this snippet, e.g.: #pragma vertex vert #pragma fragment frag // the Cg/HLSL code itself ENDCG // ... the rest of pass setup ... }http://i.cnblogs.com/EditPosts.aspx?opt=1
#pragma vertex name ---------------- 编译以name为名字的函数的顶点着色器
#pragma fragment name ------------ 编译 以name为名字的函数的片段着色器
#pragma geometry name ------------ 编译 DX10几何着色器着色器
#pragma hull name ----------------- 编译DX11船体材质
#pragma domain name ------------- 编译DX11域材质
其他编译指令
#pragma target name -------------- 编译目标着色器
#pragma only_renderers space separated names ------------- 编译给出的着色器 默认情况下着色器编译所有渲染器
#pragma exclude_renderers space separated names ----------- 给出的着色器不编译 默认情况下着色器编译所有渲染器
#pragma multi_compile names -------------------------------- 用于多个材质
每个片段都必须包含至少一个顶点程序和一个片段程序。因此# pragma顶点和# pragma片段指令是必需的。
着色器目标
在默认情况下,unity 将着色器编译为大约相等于2.0材质模型#pragma target 2.0(default) ----着色模型2.0 Direct3D 9 -------有限的算术和材质说明 , 没有顶点纹理采样 , 在片段着色器没有衍生品
#pragma target 3.0 --------------编译着色模型3.0
#pragma target 4.0 -------------- 编译DX10着色模型4.0 这个目标目前仅支持DirectX 11和 XboxOne / PS4平台
#pragma target 5.0 -------------- 编译DX10着色模型5.0 这个目标目前仅支持DirectX 11和 XboxOne / PS4平台
所有OpenGL-like平台(包括手机)被视为“着色模型3.0”的能力。WP8 / WinRT平台(DX11特性级别9. x)被视为只有着色模型2.0的能力。
渲染平台
Unity 支持多种渲染api(例如Direct3D 9和OpenGL),默认情况下所有着色器程序编译成所有支持的渲染器。 你可以指出需要编译的着色器 通过 #pragma only_renderers or #pragma exclude_renderers 指令
这主要是有用的在这种情况下,你是显式地使用一些材质语言特性在一些平台上,你知道不可能的在一些平台上
- d3d9 - Direct3D 9.
- d3d11 - Direct3D 11.
- opengl - OpenGL.
- gles - OpenGL ES 2.0.
- gles3 - OpenGL ES 3.0.
- metal - iOS Metal.
- d3d11_9x - Direct3D 11 9.x feature level, as commonly used on WSA/WP8 platforms.
- xbox360 - Xbox 360.
- xboxone - Xbox One.
- ps3 - PlayStation 3.
- ps4 - PlayStation 4.
- psp2 - PlayStation Vita.
例如,这条线只会编译材质为d3d 9模式:
- d3d9 - Direct3D 9.
- d3d11 - Direct3D 11.
- opengl - OpenGL.
- gles - OpenGL ES 2.0.
- gles3 - OpenGL ES 3.0.
- metal - iOS Metal.
- d3d11_9x - Direct3D 11 9.x feature level, as commonly used on WSA/WP8 platforms.
- xbox360 - Xbox 360.
- xboxone - Xbox One.
- ps3 - PlayStation 3.
- ps4 - PlayStation 4.
- psp2 - PlayStation Vita.
原文:http://www.cnblogs.com/OrangeZhang/p/5007772.html
内容总结
以上是互联网集市为您收集整理的Unity cg vertex and fragment shaders(一)全部内容,希望文章能够帮你解决Unity cg vertex and fragment shaders(一)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。