zoukankan      html  css  js  c++  java
  • Shader HLSL片段说明

    在编写顶点着色器或者片段着色器时,需要用到CG或者HLSL语言,这里翻译unity官网的信息。

    编译指令

    #pragma vertex name - 编译函数名成vertex shader

    #pragma fragment name - 编译函数名成fragment shader

    #pragma geometry name - 编译函数名为DX10 的几何 shader。使用这个将自动打开 #pragma target 4.0。

    #pragma hull name -编译函数名为DX11的外壳着色器,使用这个选项将自动打开  #pragma target 5.0

    #pragma domain name-编译函数名为DX11的域着色器,使用这个选项将自动打开#pragma target 5.0

    其它编译指令:

    #pragma target name - 将shader编译成某个具体平台的文件。

    #pragma only_renderers space separated names - 编译的shader只针对给定的渲染器起效果。默认情况下shader对所有渲染器均有效果。

    #pragma exclude_renderers space separated names -编译的shader对给定的渲染器无效。

    #pragma multi_compile … - 用于处理多个着色器变量。

    #pragma enable_d3d11_debug_symbols - 为编译成为DX11的shader生成调试信息,这个将允许你通过vs2012或更高的图形调试器调试shader。

    #pragma hardware_tier_variants renderer name - 将每个shader 都针对多个硬件平台做编译,并且生成对应的shader文件。每个硬件层都可以运行选中的渲染器。

    每一个代码片段必须包含至少一个 vertex program 和一个 fragment program。因此 #pragma vertex 和#pragma fragment 指令是必须的。

    从unity 5.0开始,以下指令已经没有任何用处了: #pragma glsl#pragma glsl_no_auto_normalization,#pragma profileoption#pragma fragmentoption

    渲染平台

    unity支持好几个渲染的API(比如Direct3D 11 和OpenGL),默认情况下,所有的shader程序将被编译为支持所有的渲染器。你可以通过指令 #pragma only_renderers 和 #pragma exclude_renderers 显示指定渲染器。当你使用shader语言中的某些只针对某个平台有效的特性时,这样就比较有用了。支持的渲染器名字如下:

    • d3d11 - Direct3D 11/12
    • glcore - OpenGL 3.x/4.x
    • gles - OpenGL ES 2.0
    • gles3 - OpenGL ES 3.x
    • metal - iOS/Mac Metal
    • vulkan - Vulkan
    • d3d11_9x - Direct3D 11 9.x feature level, as commonly used on WSA platforms
    • xboxone - Xbox One
    • ps4 - PlayStation 4
    • psp2 - PlayStation Vita
    • n3ds - Nintendo 3DS
    • wiiu - Nintendo Wii U
  • 相关阅读:
    20145334赵文豪 《信息安全系统设计基础》第2周学习总结
    20145334赵文豪《信息安全系统设计基础》第1周学习总结
    关于第五周大家学习问题的总结
    20145334 第五次 java 实验报告
    20145334 《Java程序设计》第10周学习总结
    实验四 Android开发基础
    # 20145334 《Java程序设计》第9周学习总结
    20145334实验三《敏捷开发与XP实践》
    实验二:面向对象设计
    程序的机器级表示内容补充及扩展
  • 原文地址:https://www.cnblogs.com/leiGameDesigner/p/8456291.html
Copyright © 2011-2022 走看看