Grass.cg
上传用户:xhbjoy
上传日期:2014-10-07
资源大小:38068k
文件大小:1k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. // Vertex program to wave some grass about
  2. // Simplistic, assumes base of the grass at 0
  3. void grass_vp(float4 position : POSITION,
  4.   float3 normal   : NORMAL,
  5.   float2 uv   : TEXCOORD0,
  6.   out float4 oPosition : POSITION,
  7.   out float2 oUv    : TEXCOORD0,
  8.   out float4 colour    : COLOR,
  9.   uniform float4x4 worldViewProj,
  10.   uniform float4 ambient,
  11.   uniform float4 objSpaceLight,
  12.   uniform float4 lightColour,
  13.   uniform float4 offset)
  14. {
  15. float4 mypos = position;
  16. //offset = float4(0.5, 0, 0, 0);
  17. mypos = mypos + offset * mypos.yyyy;
  18. oPosition = mul(worldViewProj, mypos);
  19. oUv = uv;
  20. // get vertex light direction (support directional and point)
  21. float3 light = normalize(
  22. objSpaceLight.xyz -  (position.xyz * objSpaceLight.w));
  23. float diffuseFactor = max(dot(normal, light), 0);
  24. colour = ambient + diffuseFactor * lightColour;
  25. }