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
  • 相关阅读:
    算法的时间与空间复杂度(一看就懂)
    技术人更应该学会即兴表达
    架构设计之「数据库集群方案」
    架构设计之「数据库从主备到主主的高可用方案」
    网络中的「动态路由算法」,你了解吗?
    当你「ping 一下」的时候,你知道它背后的逻辑吗?
    不懂高性能的负载均衡设计?没关系,架构师带你飞
    piwik流量统计系统搭建(apache2.4+piwik+mysql5.6+php5.6.14)
    SQL Server 之 GROUP BY、GROUPING SETS、ROLLUP、CUBE
    CAS 实现单点登录 .NET MVC
  • 原文地址:https://www.cnblogs.com/leiGameDesigner/p/8456291.html
Copyright © 2011-2022 走看看