hlsl

    0热度

    1回答

    在HLSL中,我将如何将0-1范围内的两个花车打包到一个具有最佳精度的浮标中。这对于进一步压缩GBuffer非常有用。

    1热度

    1回答

    我有一个函数,基本上创建不同的实例缓冲区到一个数组中,供我在我的DrawIndexedInstanced调用中使用。 但是,当我将顶点缓冲区和实例缓冲区传递给着色器时,当着色器使用它时,我的实例数据完全丢失,因此我的对象都没有被重新定位,因此都在同一个地方渲染。 我一直在寻找这个小时,并且从字面上找不到任何有用的东西。 创建顶点着色器输入布局: D3D11_INPUT_ELEMENT_DESC s

    1热度

    2回答

    我有点沮丧,试图找出为什么我必须调用DirectX 11着色器两次以查看所需的结果。 这是我目前的状态: 我有一个从顶点和索引缓冲区构建的3d对象。这个对象然后被多次实例化。后来,除了一个对象外,还会有更多的东西,但现在,我只用这个对象进行测试。在渲染例程中,我遍历所有实例,更改世界矩阵(以便将所有对象实例放在一起并形成“一个大的整个对象”),并调用着色器方法将数据呈现到屏幕上。 这里是到目前为止

    0热度

    1回答

    例如,假设我有“HLSLStructureTest.hlsl”,并且我想要一个二进制文件“HLSLStructureTestBytecode.bin”,它包含我编译的着色器的字节码。运行FXC.exe时可能会包含一个选项来获取该选项吗?或者我需要做的其他事情? 谢谢!

    2热度

    1回答

    我读过VS2015上的DirectX 11教程(http://www.rastertek.com/dx11s2tut04.html),发现作者分别使用.vs文件和.ps文件分别编译顶点和像素着色器。 我还发现,在“使用DirectX 11的3D游戏编程”一书中,作者使用.fx文件来整理本书中的着色器。 我应该用哪种方法用最新版本的Windows SDK开发我的direct3D程序,我想知道?因为我

    0热度

    1回答

    我正在做一个DirectX11平面的顶点操作和我的照明(具有镜面反射的多点光源)我需要重新计算每个顶点的法线。 我的问题基本上是,我会用做获取法线这波方程(X & Y)(在HLSL)什么公式: input.position.y = height * sin(input.position.x + time) * sin(input.position.y + time);

    1热度

    1回答

    在hair rendering slide通过Sheuermann在ATI开发的2004年GDC,我发现这样的代码: float StrandSpecular (float3 T, float3 V, float3 L, float exponent) { float3 H = normalize(L + V); float dotTH = dot(T, H); f

    0热度

    1回答

    我想在Unity中使用它的uv滚动纹理,但我没有得到我需要的结果。 目标是有两个组件,速度和方向。我想定义标准值的方向,速度应该根据方向来影响滚动的速度。 如果我在运行时改变速度,我不想有一些打嗝,但也许这不应该处理,但GPU。 如何以更好的方式做到这一点,也许使用矩阵? 下面是一个例子,但结果不如预期。 uv.xy = uv.xy + frac(_Time.y * float2(_Directi

    1热度

    2回答

    我正在尝试使用C++和DirectX11实现海洋场景。目前我有一个投影栅格,郭士纳波和一个基本的阴影。我的问题是,当我水平对准摄像机时,我可以看到水平线,即使在高顶点数的情况下,投影的网格也会变得不足。这些截图说明问题: 我知道这个问题的原因是在投影网格的概念(网格在摄像机附近详述,远非如此粗糙),但必须有最佳做法来解决这个问题。 任何想法?

    2热度

    1回答

    我正在研究C++和Direct3D11中的游戏引擎,现在我想在场景中添加一个可变数量的灯。到目前为止,我设法在着色器程序中添加并渲染已知和编码的计数的简单灯光。 在shader.fx: static const int LightsCount= 4; struct NF3D_LIGHT { // Members... }; cbuffer Light : register(b