HLSL 'technique' 关键字文档
HLSL 'technique' keyword documentation
很简单的问题...
我有一些代码示例:
technique Draw
{
pass
{
vertex_shader = VertexShaerName(vec_in);
pixel_shader = PixelShaderName(vec_in);
}
}
在哪里可以找到 technique
关键字用法的文档? Here 没有 link 为此类声明提供的描述...
技术被(现已弃用)效果系统使用。
它包含了很多低级别的内容api(最初 DirectX9 使用技术,所以创建它是为了促进 direct3d9 到 direct3d10/11 之间的转换)。
它提供帮助程序来管理常量缓冲区和 reflection/variable api 来将数据分配给着色器。
因此,在使用低级管道时,您将独立编译顶点和像素着色器,创建常量缓冲区,以及随之而来的结构,它允许在一个块中构建uild所有内容,中断将常量缓冲区下移到变量系统中,并有一个通道 api 允许一次性执行所有绑定。
两者各有利弊,fx 非常适合创作和原型制作(例如,使用他们的变量系统创建自动 gui 真的很容易),但由于它管理了很多样板对你来说,但在高效资源重用或复杂的着色器排列方面,它会变得有点尴尬。
我特别想念效果的一件事是变量语义和注释,您可以设置如下内容:
float2 tex : TARGETSIZE;
并通过使用变量系统检测 tex 具有 TARGETSIZE 语义,隐藏 ui 并自动附加渲染目标大小。
注释的旧常见用法是为以下值提供一些元数据:
float4 color <bool color=true;> = 1.0f;
跨注释反映允许我们将此变量视为一种颜色(并在编辑器中显示颜色选择器而不是 4 个通道)
虽然 fx_5_0 配置文件在 d3dcompiler_47 中已弃用,但仍然可以使用它,并且包装器是开源的:
https://github.com/microsoft/FX11
很简单的问题...
我有一些代码示例:
technique Draw
{
pass
{
vertex_shader = VertexShaerName(vec_in);
pixel_shader = PixelShaderName(vec_in);
}
}
在哪里可以找到 technique
关键字用法的文档? Here 没有 link 为此类声明提供的描述...
技术被(现已弃用)效果系统使用。
它包含了很多低级别的内容api(最初 DirectX9 使用技术,所以创建它是为了促进 direct3d9 到 direct3d10/11 之间的转换)。
它提供帮助程序来管理常量缓冲区和 reflection/variable api 来将数据分配给着色器。
因此,在使用低级管道时,您将独立编译顶点和像素着色器,创建常量缓冲区,以及随之而来的结构,它允许在一个块中构建uild所有内容,中断将常量缓冲区下移到变量系统中,并有一个通道 api 允许一次性执行所有绑定。
两者各有利弊,fx 非常适合创作和原型制作(例如,使用他们的变量系统创建自动 gui 真的很容易),但由于它管理了很多样板对你来说,但在高效资源重用或复杂的着色器排列方面,它会变得有点尴尬。
我特别想念效果的一件事是变量语义和注释,您可以设置如下内容:
float2 tex : TARGETSIZE;
并通过使用变量系统检测 tex 具有 TARGETSIZE 语义,隐藏 ui 并自动附加渲染目标大小。
注释的旧常见用法是为以下值提供一些元数据:
float4 color <bool color=true;> = 1.0f;
跨注释反映允许我们将此变量视为一种颜色(并在编辑器中显示颜色选择器而不是 4 个通道)
虽然 fx_5_0 配置文件在 d3dcompiler_47 中已弃用,但仍然可以使用它,并且包装器是开源的: https://github.com/microsoft/FX11