Quantcast
Channel: Questions in topic: "hlsl"
Viewing all articles
Browse latest Browse all 206

Convert shader from DirectX 9 to DirectX 11

$
0
0
I have this shader that works when Unity is set to use DirectX 9. I am porting the project to DirectX 11 now and the shader doesn't work as expected. Not being an expert in HLSL I played around a bit not obtaining interesting results so I'd appreciate any help. The vertex deformation part works fine so you may ignore the *myvert* function. Thank you for your attention. Shader "Flow" { Properties { _Color ("Diffuse Color", Color) = (1,1,1,1) _MainTex ("Base (RGB)", 2D) = "white" {} _BumpMap ("Bumpmap", 2D) = "bump" {} _AlphaMask ("Alpha Mask", 2D) = "white" {} _Speed ("Speed", range(0,2)) = 0.1 _VertexDeformation ("Vertex Deformation", range(0,.5)) = 0.05 } SubShader { Tags { "Queue"="Transparent" "RenderType"="Transparent" } LOD 200 ZWrite On Cull Off Lighting On // extra pass that renders to depth buffer only Pass { ZWrite On ColorMask 0 } // Set up alpha blending Blend SrcAlpha OneMinusSrcAlpha AlphaTest LEqual [_Cutoff] CGPROGRAM // Upgrade NOTE: excluded shader from OpenGL ES 2.0 because it does not contain a surface program or both vertex and fragment programs. #pragma exclude_renderers gles // #pragma surface surf Lambert finalcolor:mycolor vertex:myvert #pragma surface surf Lambert alpha #pragma vertex myvert float4 _Color; sampler2D _MainTex; sampler2D _BumpMap; sampler2D _AlphaMask; float _Speed; float _VertexDeformation; struct Input { float2 uv_MainTex; float2 uv_BumpMap; //float alpha; }; void myvert (inout appdata_full v, out Input data) { if(_VertexDeformation > 0.0) { v.vertex.z += _VertexDeformation * clamp(-v.vertex.y, 0 , 10) * sin(-v.vertex.y * 5 * cos(v.vertex.x) - _Time * 1000); } } void mycolor (Input IN, SurfaceOutput o, inout fixed4 color) { } void surf (Input IN, inout SurfaceOutput o) { half4 c = _Color * tex2D (_MainTex, IN.uv_MainTex + _Time.xy * _Speed ); o.Normal = UnpackNormal(tex2D( _BumpMap, IN.uv_BumpMap + _Time.xy * _Speed )).rgb * tex2D( _AlphaMask, IN.uv_BumpMap ).r; o.Albedo = c.rgb * _Color.rgb; o.Emission = o.Albedo * 0.75; o.Alpha = tex2D (_AlphaMask, IN.uv_BumpMap) * c.a * _Color.a; //IN.alpha; } ENDCG } FallBack "Diffuse" }

Viewing all articles
Browse latest Browse all 206

Trending Articles



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