hlsl

    3热度

    1回答

    我正在寻找Unity的玻璃着色器,它只折射它背后的物体,或者想法如何修改现有的玻璃着色器来做到这一点。 这个屏幕截图显示了当我在曲面网格上使用FX/Glass/Stained BumpDistort时会发生什么。 正如你可以看到,玻璃着色折射无论是在网前球和它背后的理由。我正在寻找一个着色器,它只会折射它背后的物体。 下面是该着色器的代码,以供参考: // Per pixel bumped ref

    0热度

    2回答

    我有一个比较复杂的着色器,我想编译它。 着色器有700行,编译成〜3000条指令。 编译时间与fxc(Windows 8 SDK)约90秒。 我有另一个类似大小的着色器,编译时间为20秒。 因此,这里是我的问题: 可以加快从应用的角度(FXC或FXC替代的速度更快的版本)的编制? 是否有可能加快从代码视点编译(是代码构造大大减慢编译 - 哪些,如何避免它们)? 是否有可能加快编译fxc设置的观点(

    -5热度

    1回答

    我使用统一,我想发送一个字节数组到GPU使用HLSL。我知道ByteAddressBuffer,但我不知道如何使用它。我有点想知道如何发送“字节”到GPU。我想在我的计算着色器中有一个StructuredBuffer<byte>。

    1热度

    1回答

    将数据发送到顶点着色器时,directX中的速度更快。 struct VertexInputType { float4 data : DATA; // x,y - POSITION, z - distance, w - size } VS struct VertexInputType { float2 pos : POSITION; float distan

    1热度

    1回答

    矩阵和float4x4之间的区别。当我定义hlsl的cBuffer,一些例子显示 cbuffer cbPerObject { matrix worldMatrix; matrix viewMatrix; matrix projectionMatrix; }; 而其他节目 cbuffer cbPerObject { float4x4 worldMat

    0热度

    1回答

    我在directx11上很新,并且我想为我使用的着色器添加纹理。 (直到现在,我还没有在directx11中使用任何纹理) 但是采样似乎并不奏效(它总是float4(0,0,0,0)),并且我得到警告:“ D3D11警告:ID3D11DeviceContext :: DrawIndexed:Pixel Shader单元需要将采样器设置为插槽0,但没有绑定。“ 我搜索了这一点,但所有的答案说使用 _

    0热度

    1回答

    说我有以下几点: Texture2D texture : register(t0); SamplerState sampler : register(s0); export float4 Sample(float2 uv) { return texture.Sample(sampler, uv); } export float4 Multiply(float4 lhs, float4 r

    1热度

    1回答

    我一直在尝试一段时间以获得屏幕空间像素(由延迟HLSL着色器提供)转换为光照空间。结果令我感到惊讶,因为我的光线渲染似乎在平铺深度缓冲区。 重要的是,场景摄像头(或眼睛)和从同一位置开始渲染的光线。 float3 eye = Eye; float4 position = { IN.texCoord.x * 2 - 1, (1 - IN.texCoord.y) * 2 - 1,

    0热度

    1回答

    我想在hlsl着色器中写入数据到缓冲区。我知道在opengl中你需要ssbo,但在direct11中有没有相应的缓冲区类型?(我是新手)。 p.s.我正在使用monogame,因此可用的最新着色器模型是3.0。 谢谢!

    0热度

    1回答

    我工作的支持DirectX C++/CX(通用的Windows)项目。 我不是所有的方式,熟悉的DirectX11。 我的代码主要是基于与在UWP使用swapchainpanels渲染的DirectX MSDN上的样本项目。 现在我想一个float变量添加着色器。我相信这必须使用常量缓冲区来完成。目前这如下(和作品): //c++: struct ModelViewProjectionConst