Quantcast
Channel: Questions in topic: "compute shader"
Viewing all articles
Browse latest Browse all 287

UVs are not mapped properly in my unity surface shader

$
0
0
Hi, I am trying to use compute shaders with surface shaders with dx11 tesselation shaders ( Using unity's distance base tesselation example from unity guide ). I copied the generated code from surface shaders and used it as a seperate shader. I am generating vertices for a plane in compute shader. The triangles are being generated properly but I seem to have to a problem with mapping the UVs. With using any texture all I get the is black plane. Here is my surface shader's vertex shader: InternalTessInterp_appdata tessvert_surf(appdata v, uint id:SV_VertexID) { InternalTessInterp_appdata o; o.vertex = float4(vertexBuffer[id],1); o.tangent = v.tangent; o.normal = v.normal; o.texcoord = float2(o.vertex.x/16,o.vertex.y/16); return o; } Here is my Compute shader (the value of thread group size x, group size y and z is 4) void GenerateMesh(uint3 id : SV_DispatchThreadID) { int idx = id.x + (id.y * thread_group_size_x * group_size_x) + (id.z * thread_group_size_x * group_size_y * group_size_z); float3 pos = float3(id.x, id.y, id.z); output[6 * idx + 0].pos = pos + float3(1, 1, 0); output[6 * idx + 1].pos = pos + float3(1, 0, 0); output[6 * idx + 2].pos = pos; output[6 * idx + 3].pos = pos; output[6 * idx + 4].pos = pos + float3(0, 1, 0); output[6 * idx + 5].pos = pos + float3(1, 1, 0); } Here is my CSharp code void DrawMesh() { planetComputeShader.Dispatch(kernel, 4, 4, 1); planetTesselationMaterial.SetPass(0); planetTesselationMaterial.SetBuffer("vertexBuffer",vertexBuffer); Graphics.DrawProcedural(MeshTopology.Triangles,6 * 289); } My final aim to create a procedural planet generated on GPU. I know I am far way from doing this but I am taking small steps :-) Please help me debug this. Thanks in advance.

Viewing all articles
Browse latest Browse all 287

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>