Browse Source

Shaders and tweaks to ScenePicking

marco.bellan 9 năm trước cách đây
mục cha
commit
c84446ce74
74 tập tin đã thay đổi với 29 bổ sung6 xóa
  1. BIN
      Data/Editor/GUISkin.asset
  2. BIN
      Data/Editor/Icons/Sprites/sprite_AnimationClipIcon.psd16.asset
  3. BIN
      Data/Editor/Icons/Sprites/sprite_AnimationClipIcon.psd32.asset
  4. BIN
      Data/Editor/Icons/Sprites/sprite_AnimationClipIcon.psd48.asset
  5. BIN
      Data/Editor/Icons/Sprites/sprite_AudioClipIcon.psd16.asset
  6. BIN
      Data/Editor/Icons/Sprites/sprite_AudioClipIcon.psd32.asset
  7. BIN
      Data/Editor/Icons/Sprites/sprite_AudioClipIcon.psd48.asset
  8. BIN
      Data/Editor/Icons/Sprites/sprite_CSharpIcon.psd16.asset
  9. BIN
      Data/Editor/Icons/Sprites/sprite_CSharpIcon.psd32.asset
  10. BIN
      Data/Editor/Icons/Sprites/sprite_CSharpIcon.psd48.asset
  11. BIN
      Data/Editor/Icons/Sprites/sprite_FolderIcon.psd16.asset
  12. BIN
      Data/Editor/Icons/Sprites/sprite_FolderIcon.psd32.asset
  13. BIN
      Data/Editor/Icons/Sprites/sprite_FolderIcon.psd48.asset
  14. BIN
      Data/Editor/Icons/Sprites/sprite_FontIcon.psd16.asset
  15. BIN
      Data/Editor/Icons/Sprites/sprite_FontIcon.psd32.asset
  16. BIN
      Data/Editor/Icons/Sprites/sprite_FontIcon.psd48.asset
  17. BIN
      Data/Editor/Icons/Sprites/sprite_GUISkinIcon.psd16.asset
  18. BIN
      Data/Editor/Icons/Sprites/sprite_GUISkinIcon.psd32.asset
  19. BIN
      Data/Editor/Icons/Sprites/sprite_GUISkinIcon.psd48.asset
  20. BIN
      Data/Editor/Icons/Sprites/sprite_MaterialIcon.psd16.asset
  21. BIN
      Data/Editor/Icons/Sprites/sprite_MaterialIcon.psd32.asset
  22. BIN
      Data/Editor/Icons/Sprites/sprite_MaterialIcon.psd48.asset
  23. BIN
      Data/Editor/Icons/Sprites/sprite_MeshIcon.psd16.asset
  24. BIN
      Data/Editor/Icons/Sprites/sprite_MeshIcon.psd32.asset
  25. BIN
      Data/Editor/Icons/Sprites/sprite_MeshIcon.psd48.asset
  26. BIN
      Data/Editor/Icons/Sprites/sprite_PhysicsMaterialIcon.psd16.asset
  27. BIN
      Data/Editor/Icons/Sprites/sprite_PhysicsMaterialIcon.psd32.asset
  28. BIN
      Data/Editor/Icons/Sprites/sprite_PhysicsMaterialIcon.psd48.asset
  29. BIN
      Data/Editor/Icons/Sprites/sprite_PhysicsMeshIcon.psd16.asset
  30. BIN
      Data/Editor/Icons/Sprites/sprite_PhysicsMeshIcon.psd32.asset
  31. BIN
      Data/Editor/Icons/Sprites/sprite_PhysicsMeshIcon.psd48.asset
  32. BIN
      Data/Editor/Icons/Sprites/sprite_PrefabIcon.psd16.asset
  33. BIN
      Data/Editor/Icons/Sprites/sprite_PrefabIcon.psd32.asset
  34. BIN
      Data/Editor/Icons/Sprites/sprite_PrefabIcon.psd48.asset
  35. BIN
      Data/Editor/Icons/Sprites/sprite_ShaderIcon.psd16.asset
  36. BIN
      Data/Editor/Icons/Sprites/sprite_ShaderIcon.psd32.asset
  37. BIN
      Data/Editor/Icons/Sprites/sprite_ShaderIcon.psd48.asset
  38. BIN
      Data/Editor/Icons/Sprites/sprite_ShaderIncludeIcon.psd16.asset
  39. BIN
      Data/Editor/Icons/Sprites/sprite_ShaderIncludeIcon.psd32.asset
  40. BIN
      Data/Editor/Icons/Sprites/sprite_ShaderIncludeIcon.psd48.asset
  41. BIN
      Data/Editor/Icons/Sprites/sprite_SpriteIcon.psd16.asset
  42. BIN
      Data/Editor/Icons/Sprites/sprite_SpriteIcon.psd32.asset
  43. BIN
      Data/Editor/Icons/Sprites/sprite_SpriteIcon.psd48.asset
  44. BIN
      Data/Editor/Icons/Sprites/sprite_TextIcon.psd16.asset
  45. BIN
      Data/Editor/Icons/Sprites/sprite_TextIcon.psd32.asset
  46. BIN
      Data/Editor/Icons/Sprites/sprite_TextIcon.psd48.asset
  47. BIN
      Data/Editor/Icons/Sprites/sprite_TextureIcon.psd16.asset
  48. BIN
      Data/Editor/Icons/Sprites/sprite_TextureIcon.psd32.asset
  49. BIN
      Data/Editor/Icons/Sprites/sprite_TextureIcon.psd48.asset
  50. BIN
      Data/Editor/Includes/PickingAlphaCull.bslinc.asset
  51. BIN
      Data/Editor/Includes/PickingCull.bslinc.asset
  52. BIN
      Data/Editor/ResourceManifest.asset
  53. BIN
      Data/Editor/Shaders/PickingAlphaCullCCW.bsl.asset
  54. BIN
      Data/Editor/Shaders/PickingAlphaCullCW.bsl.asset
  55. BIN
      Data/Editor/Shaders/PickingAlphaCullNone.bsl.asset
  56. BIN
      Data/Editor/Shaders/PickingCullCCW.bsl.asset
  57. BIN
      Data/Editor/Shaders/PickingCullCW.bsl.asset
  58. BIN
      Data/Editor/Shaders/PickingCullNone.bsl.asset
  59. BIN
      Data/Editor/Shaders/SceneGrid.bsl.asset
  60. BIN
      Data/Editor/Timestamp.asset
  61. BIN
      Data/Editor/arial.ttf.asset
  62. BIN
      Data/Editor/arialAA.ttf.asset
  63. BIN
      Data/Engine/GUISkin.asset
  64. BIN
      Data/Engine/Includes/SpriteImage.bslinc.asset
  65. BIN
      Data/Engine/ResourceManifest.asset
  66. BIN
      Data/Engine/Shaders/SpriteImageAlpha.bsl.asset
  67. BIN
      Data/Engine/Shaders/SpriteImageNoAlpha.bsl.asset
  68. BIN
      Data/Engine/Shaders/SpriteLine.bsl.asset
  69. BIN
      Data/Engine/Shaders/SpriteText.bsl.asset
  70. BIN
      Data/Engine/Timestamp.asset
  71. BIN
      Data/Engine/arial.ttf.asset
  72. 13 2
      Data/Raw/Editor/Includes/PickingAlphaCull.bslinc
  73. 16 3
      Data/Raw/Editor/Includes/PickingCull.bslinc
  74. 0 1
      Source/BansheeEditor/Source/BsScenePicking.cpp

BIN
Data/Editor/GUISkin.asset


BIN
Data/Editor/Icons/Sprites/sprite_AnimationClipIcon.psd16.asset


BIN
Data/Editor/Icons/Sprites/sprite_AnimationClipIcon.psd32.asset


BIN
Data/Editor/Icons/Sprites/sprite_AnimationClipIcon.psd48.asset


BIN
Data/Editor/Icons/Sprites/sprite_AudioClipIcon.psd16.asset


BIN
Data/Editor/Icons/Sprites/sprite_AudioClipIcon.psd32.asset


BIN
Data/Editor/Icons/Sprites/sprite_AudioClipIcon.psd48.asset


BIN
Data/Editor/Icons/Sprites/sprite_CSharpIcon.psd16.asset


BIN
Data/Editor/Icons/Sprites/sprite_CSharpIcon.psd32.asset


BIN
Data/Editor/Icons/Sprites/sprite_CSharpIcon.psd48.asset


BIN
Data/Editor/Icons/Sprites/sprite_FolderIcon.psd16.asset


BIN
Data/Editor/Icons/Sprites/sprite_FolderIcon.psd32.asset


BIN
Data/Editor/Icons/Sprites/sprite_FolderIcon.psd48.asset


BIN
Data/Editor/Icons/Sprites/sprite_FontIcon.psd16.asset


BIN
Data/Editor/Icons/Sprites/sprite_FontIcon.psd32.asset


BIN
Data/Editor/Icons/Sprites/sprite_FontIcon.psd48.asset


BIN
Data/Editor/Icons/Sprites/sprite_GUISkinIcon.psd16.asset


BIN
Data/Editor/Icons/Sprites/sprite_GUISkinIcon.psd32.asset


BIN
Data/Editor/Icons/Sprites/sprite_GUISkinIcon.psd48.asset


BIN
Data/Editor/Icons/Sprites/sprite_MaterialIcon.psd16.asset


BIN
Data/Editor/Icons/Sprites/sprite_MaterialIcon.psd32.asset


BIN
Data/Editor/Icons/Sprites/sprite_MaterialIcon.psd48.asset


BIN
Data/Editor/Icons/Sprites/sprite_MeshIcon.psd16.asset


BIN
Data/Editor/Icons/Sprites/sprite_MeshIcon.psd32.asset


BIN
Data/Editor/Icons/Sprites/sprite_MeshIcon.psd48.asset


BIN
Data/Editor/Icons/Sprites/sprite_PhysicsMaterialIcon.psd16.asset


BIN
Data/Editor/Icons/Sprites/sprite_PhysicsMaterialIcon.psd32.asset


BIN
Data/Editor/Icons/Sprites/sprite_PhysicsMaterialIcon.psd48.asset


BIN
Data/Editor/Icons/Sprites/sprite_PhysicsMeshIcon.psd16.asset


BIN
Data/Editor/Icons/Sprites/sprite_PhysicsMeshIcon.psd32.asset


BIN
Data/Editor/Icons/Sprites/sprite_PhysicsMeshIcon.psd48.asset


BIN
Data/Editor/Icons/Sprites/sprite_PrefabIcon.psd16.asset


BIN
Data/Editor/Icons/Sprites/sprite_PrefabIcon.psd32.asset


BIN
Data/Editor/Icons/Sprites/sprite_PrefabIcon.psd48.asset


BIN
Data/Editor/Icons/Sprites/sprite_ShaderIcon.psd16.asset


BIN
Data/Editor/Icons/Sprites/sprite_ShaderIcon.psd32.asset


BIN
Data/Editor/Icons/Sprites/sprite_ShaderIcon.psd48.asset


BIN
Data/Editor/Icons/Sprites/sprite_ShaderIncludeIcon.psd16.asset


BIN
Data/Editor/Icons/Sprites/sprite_ShaderIncludeIcon.psd32.asset


BIN
Data/Editor/Icons/Sprites/sprite_ShaderIncludeIcon.psd48.asset


BIN
Data/Editor/Icons/Sprites/sprite_SpriteIcon.psd16.asset


BIN
Data/Editor/Icons/Sprites/sprite_SpriteIcon.psd32.asset


BIN
Data/Editor/Icons/Sprites/sprite_SpriteIcon.psd48.asset


BIN
Data/Editor/Icons/Sprites/sprite_TextIcon.psd16.asset


BIN
Data/Editor/Icons/Sprites/sprite_TextIcon.psd32.asset


BIN
Data/Editor/Icons/Sprites/sprite_TextIcon.psd48.asset


BIN
Data/Editor/Icons/Sprites/sprite_TextureIcon.psd16.asset


BIN
Data/Editor/Icons/Sprites/sprite_TextureIcon.psd32.asset


BIN
Data/Editor/Icons/Sprites/sprite_TextureIcon.psd48.asset


BIN
Data/Editor/Includes/PickingAlphaCull.bslinc.asset


BIN
Data/Editor/Includes/PickingCull.bslinc.asset


BIN
Data/Editor/ResourceManifest.asset


BIN
Data/Editor/Shaders/PickingAlphaCullCCW.bsl.asset


BIN
Data/Editor/Shaders/PickingAlphaCullCW.bsl.asset


BIN
Data/Editor/Shaders/PickingAlphaCullNone.bsl.asset


BIN
Data/Editor/Shaders/PickingCullCCW.bsl.asset


BIN
Data/Editor/Shaders/PickingCullCW.bsl.asset


BIN
Data/Editor/Shaders/PickingCullNone.bsl.asset


BIN
Data/Editor/Shaders/SceneGrid.bsl.asset


BIN
Data/Editor/Timestamp.asset


BIN
Data/Editor/arial.ttf.asset


BIN
Data/Editor/arialAA.ttf.asset


BIN
Data/Engine/GUISkin.asset


BIN
Data/Engine/Includes/SpriteImage.bslinc.asset


BIN
Data/Engine/ResourceManifest.asset


BIN
Data/Engine/Shaders/SpriteImageAlpha.bsl.asset


BIN
Data/Engine/Shaders/SpriteImageNoAlpha.bsl.asset


BIN
Data/Engine/Shaders/SpriteLine.bsl.asset


BIN
Data/Engine/Shaders/SpriteText.bsl.asset


BIN
Data/Engine/Timestamp.asset


BIN
Data/Engine/arial.ttf.asset


+ 13 - 2
Data/Raw/Editor/Includes/PickingAlphaCull.bslinc

@@ -23,11 +23,14 @@ Technique =
 
 
 			void main(
 			void main(
 				in float3 inPos : POSITION,
 				in float3 inPos : POSITION,
+				in float3 inNorm : NORMAL,
 				in float2 uv : TEXCOORD0,
 				in float2 uv : TEXCOORD0,
 				out float4 oPosition : SV_Position,
 				out float4 oPosition : SV_Position,
+				out float4 oNorm : NORMAL,
 				out float2 oUv : TEXCOORD0)
 				out float2 oUv : TEXCOORD0)
 			{
 			{
 				oPosition = mul(matWorldViewProj, float4(inPos.xyz, 1));
 				oPosition = mul(matWorldViewProj, float4(inPos.xyz, 1));
+				oNorm = float4(inNorm, 0);
 				oUv = uv;
 				oUv = uv;
 			}
 			}
 		};
 		};
@@ -42,9 +45,12 @@ Technique =
 
 
 			float4 main(
 			float4 main(
 				in float4 inPos : SV_Position,
 				in float4 inPos : SV_Position,
-				in float2 uv : TEXCOORD0) : SV_Target
+				in float4 inNorm : NORMAL,
+				in float2 uv : TEXCOORD0,
+				out float4 oNorm : SV_Target1) : SV_Target0
 			{
 			{
 				float4 color = mainTexture.Sample(mainTexSamp, uv);
 				float4 color = mainTexture.Sample(mainTexSamp, uv);
+				oNorm = (inNorm + float4(1,1,1,0)) / 2;
 				if(color.a < alphaCutoff)
 				if(color.a < alphaCutoff)
 					discard;
 					discard;
 				
 				
@@ -111,6 +117,8 @@ Technique =
 			uniform mat4 matWorldViewProj;
 			uniform mat4 matWorldViewProj;
 			in vec3 bs_position;
 			in vec3 bs_position;
 			in vec2 bs_texcoord0;
 			in vec2 bs_texcoord0;
+			in vec3 bs_normal;
+			out vec4 bs_outNorm
 			out vec2 texcoord0;
 			out vec2 texcoord0;
 
 
 			out gl_PerVertex
 			out gl_PerVertex
@@ -122,6 +130,7 @@ Technique =
 			{
 			{
 				gl_Position = matWorldViewProj * vec4(bs_position.xyz, 1);
 				gl_Position = matWorldViewProj * vec4(bs_position.xyz, 1);
 				texcoord0 = bs_texcoord0;
 				texcoord0 = bs_texcoord0;
+				bs_outNorm = vec4(bs_normal, 0);
 			}
 			}
 		};
 		};
 		
 		
@@ -130,7 +139,9 @@ Technique =
 			uniform sampler2D mainTexture;
 			uniform sampler2D mainTexture;
 			uniform vec4 colorIndex;
 			uniform vec4 colorIndex;
 			uniform float alphaCutoff;
 			uniform float alphaCutoff;
+			in vec4 bs_outNorm;
 			in vec2 texcoord0;
 			in vec2 texcoord0;
+			out vec4 normalsColor;
 			out vec4 fragColor;
 			out vec4 fragColor;
 
 
 			void main()
 			void main()
@@ -138,7 +149,7 @@ Technique =
 				vec4 color = texture2D(mainTexture, texcoord0);
 				vec4 color = texture2D(mainTexture, texcoord0);
 				if(color.a < alphaCutoff)
 				if(color.a < alphaCutoff)
 					discard;
 					discard;
-				
+				normalsColor = (bs_outNorm + vec4(1,1,1,0)) / 2;;
 				fragColor = colorIndex;
 				fragColor = colorIndex;
 			}
 			}
 		};
 		};

+ 16 - 3
Data/Raw/Editor/Includes/PickingCull.bslinc

@@ -19,9 +19,12 @@ Technique =
 
 
 			void main(
 			void main(
 				in float3 inPos : POSITION,
 				in float3 inPos : POSITION,
-				out float4 oPosition : SV_Position)
+				in float3 inNorm : NORMAL,
+				out float4 oPosition : SV_Position,
+				out float4 oNorm : NORMAL)
 			{
 			{
 				oPosition = mul(matWorldViewProj, float4(inPos.xyz, 1));
 				oPosition = mul(matWorldViewProj, float4(inPos.xyz, 1));
+				oNorm = float4(inNorm, 0);
 			}
 			}
 		};
 		};
 		
 		
@@ -29,8 +32,13 @@ Technique =
 		{
 		{
 			float4 colorIndex;
 			float4 colorIndex;
 
 
-			float4 main(in float4 inPos : SV_Position) : SV_Target
+			float4 main(
+				in float4 inPos : SV_Position,
+				in float4 inNorm : NORMAL,	
+				out float4 oNorm :SV_Target1
+			) : SV_Target0
 			{
 			{
+				oNorm = (inNorm + float4(1,1,1,0)) / 2;
 				return colorIndex;
 				return colorIndex;
 			}
 			}
 		};
 		};
@@ -81,7 +89,8 @@ Technique =
 		{
 		{
 			uniform mat4 matWorldViewProj;
 			uniform mat4 matWorldViewProj;
 			in vec3 bs_position;
 			in vec3 bs_position;
-
+			in vec3 bs_normal;
+			out vec4 bs_outNorm
 			out gl_PerVertex
 			out gl_PerVertex
 			{
 			{
 				vec4 gl_Position;
 				vec4 gl_Position;
@@ -89,17 +98,21 @@ Technique =
 			
 			
 			void main()
 			void main()
 			{
 			{
+				bs_outNorm = vec4(bs_normal,0);
 				gl_Position = matWorldViewProj * vec4(bs_position.xyz, 1);
 				gl_Position = matWorldViewProj * vec4(bs_position.xyz, 1);
 			}
 			}
 		};
 		};
 		
 		
 		Fragment =
 		Fragment =
 		{
 		{
+			in vec4 bs_outNorm;
 			uniform vec4 colorIndex;
 			uniform vec4 colorIndex;
+			out vec4 normalsColor;
 			out vec4 fragColor;
 			out vec4 fragColor;
 
 
 			void main()
 			void main()
 			{
 			{
+				normalsColor = (bs_outNorm + vec4(1,1,1,0)) / 2;
 				fragColor = colorIndex;
 				fragColor = colorIndex;
 			}
 			}
 		};
 		};

+ 0 - 1
Source/BansheeEditor/Source/BsScenePicking.cpp

@@ -498,7 +498,6 @@ namespace BansheeEngine
 				depth = depthPixelData->getDepthAt(position.x, position.y);
 				depth = depthPixelData->getDepthAt(position.x, position.y);
 				normal = normalsPixelData->getColorAt(position.x, position.y);
 				normal = normalsPixelData->getColorAt(position.x, position.y);
 			}
 			}
-			LOGWRN(toString(normal.r) + " & " + toString(normal.g) + " & " + toString(normal.b));
 
 
 			SnapData data;
 			SnapData data;
 			const RenderAPIInfo& rapiInfo = rs.getAPIInfo();
 			const RenderAPIInfo& rapiInfo = rs.getAPIInfo();