Jelajahi Sumber

Shaders and tweaks to ScenePicking

marco.bellan 9 tahun lalu
induk
melakukan
c84446ce74
74 mengubah file dengan 29 tambahan dan 6 penghapusan
  1. TEMPAT SAMPAH
      Data/Editor/GUISkin.asset
  2. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_AnimationClipIcon.psd16.asset
  3. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_AnimationClipIcon.psd32.asset
  4. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_AnimationClipIcon.psd48.asset
  5. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_AudioClipIcon.psd16.asset
  6. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_AudioClipIcon.psd32.asset
  7. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_AudioClipIcon.psd48.asset
  8. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_CSharpIcon.psd16.asset
  9. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_CSharpIcon.psd32.asset
  10. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_CSharpIcon.psd48.asset
  11. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_FolderIcon.psd16.asset
  12. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_FolderIcon.psd32.asset
  13. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_FolderIcon.psd48.asset
  14. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_FontIcon.psd16.asset
  15. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_FontIcon.psd32.asset
  16. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_FontIcon.psd48.asset
  17. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_GUISkinIcon.psd16.asset
  18. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_GUISkinIcon.psd32.asset
  19. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_GUISkinIcon.psd48.asset
  20. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_MaterialIcon.psd16.asset
  21. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_MaterialIcon.psd32.asset
  22. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_MaterialIcon.psd48.asset
  23. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_MeshIcon.psd16.asset
  24. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_MeshIcon.psd32.asset
  25. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_MeshIcon.psd48.asset
  26. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_PhysicsMaterialIcon.psd16.asset
  27. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_PhysicsMaterialIcon.psd32.asset
  28. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_PhysicsMaterialIcon.psd48.asset
  29. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_PhysicsMeshIcon.psd16.asset
  30. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_PhysicsMeshIcon.psd32.asset
  31. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_PhysicsMeshIcon.psd48.asset
  32. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_PrefabIcon.psd16.asset
  33. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_PrefabIcon.psd32.asset
  34. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_PrefabIcon.psd48.asset
  35. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_ShaderIcon.psd16.asset
  36. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_ShaderIcon.psd32.asset
  37. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_ShaderIcon.psd48.asset
  38. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_ShaderIncludeIcon.psd16.asset
  39. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_ShaderIncludeIcon.psd32.asset
  40. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_ShaderIncludeIcon.psd48.asset
  41. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_SpriteIcon.psd16.asset
  42. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_SpriteIcon.psd32.asset
  43. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_SpriteIcon.psd48.asset
  44. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_TextIcon.psd16.asset
  45. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_TextIcon.psd32.asset
  46. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_TextIcon.psd48.asset
  47. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_TextureIcon.psd16.asset
  48. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_TextureIcon.psd32.asset
  49. TEMPAT SAMPAH
      Data/Editor/Icons/Sprites/sprite_TextureIcon.psd48.asset
  50. TEMPAT SAMPAH
      Data/Editor/Includes/PickingAlphaCull.bslinc.asset
  51. TEMPAT SAMPAH
      Data/Editor/Includes/PickingCull.bslinc.asset
  52. TEMPAT SAMPAH
      Data/Editor/ResourceManifest.asset
  53. TEMPAT SAMPAH
      Data/Editor/Shaders/PickingAlphaCullCCW.bsl.asset
  54. TEMPAT SAMPAH
      Data/Editor/Shaders/PickingAlphaCullCW.bsl.asset
  55. TEMPAT SAMPAH
      Data/Editor/Shaders/PickingAlphaCullNone.bsl.asset
  56. TEMPAT SAMPAH
      Data/Editor/Shaders/PickingCullCCW.bsl.asset
  57. TEMPAT SAMPAH
      Data/Editor/Shaders/PickingCullCW.bsl.asset
  58. TEMPAT SAMPAH
      Data/Editor/Shaders/PickingCullNone.bsl.asset
  59. TEMPAT SAMPAH
      Data/Editor/Shaders/SceneGrid.bsl.asset
  60. TEMPAT SAMPAH
      Data/Editor/Timestamp.asset
  61. TEMPAT SAMPAH
      Data/Editor/arial.ttf.asset
  62. TEMPAT SAMPAH
      Data/Editor/arialAA.ttf.asset
  63. TEMPAT SAMPAH
      Data/Engine/GUISkin.asset
  64. TEMPAT SAMPAH
      Data/Engine/Includes/SpriteImage.bslinc.asset
  65. TEMPAT SAMPAH
      Data/Engine/ResourceManifest.asset
  66. TEMPAT SAMPAH
      Data/Engine/Shaders/SpriteImageAlpha.bsl.asset
  67. TEMPAT SAMPAH
      Data/Engine/Shaders/SpriteImageNoAlpha.bsl.asset
  68. TEMPAT SAMPAH
      Data/Engine/Shaders/SpriteLine.bsl.asset
  69. TEMPAT SAMPAH
      Data/Engine/Shaders/SpriteText.bsl.asset
  70. TEMPAT SAMPAH
      Data/Engine/Timestamp.asset
  71. TEMPAT SAMPAH
      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

TEMPAT SAMPAH
Data/Editor/GUISkin.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_AnimationClipIcon.psd16.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_AnimationClipIcon.psd32.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_AnimationClipIcon.psd48.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_AudioClipIcon.psd16.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_AudioClipIcon.psd32.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_AudioClipIcon.psd48.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_CSharpIcon.psd16.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_CSharpIcon.psd32.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_CSharpIcon.psd48.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_FolderIcon.psd16.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_FolderIcon.psd32.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_FolderIcon.psd48.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_FontIcon.psd16.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_FontIcon.psd32.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_FontIcon.psd48.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_GUISkinIcon.psd16.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_GUISkinIcon.psd32.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_GUISkinIcon.psd48.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_MaterialIcon.psd16.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_MaterialIcon.psd32.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_MaterialIcon.psd48.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_MeshIcon.psd16.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_MeshIcon.psd32.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_MeshIcon.psd48.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_PhysicsMaterialIcon.psd16.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_PhysicsMaterialIcon.psd32.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_PhysicsMaterialIcon.psd48.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_PhysicsMeshIcon.psd16.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_PhysicsMeshIcon.psd32.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_PhysicsMeshIcon.psd48.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_PrefabIcon.psd16.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_PrefabIcon.psd32.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_PrefabIcon.psd48.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_ShaderIcon.psd16.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_ShaderIcon.psd32.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_ShaderIcon.psd48.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_ShaderIncludeIcon.psd16.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_ShaderIncludeIcon.psd32.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_ShaderIncludeIcon.psd48.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_SpriteIcon.psd16.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_SpriteIcon.psd32.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_SpriteIcon.psd48.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_TextIcon.psd16.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_TextIcon.psd32.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_TextIcon.psd48.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_TextureIcon.psd16.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_TextureIcon.psd32.asset


TEMPAT SAMPAH
Data/Editor/Icons/Sprites/sprite_TextureIcon.psd48.asset


TEMPAT SAMPAH
Data/Editor/Includes/PickingAlphaCull.bslinc.asset


TEMPAT SAMPAH
Data/Editor/Includes/PickingCull.bslinc.asset


TEMPAT SAMPAH
Data/Editor/ResourceManifest.asset


TEMPAT SAMPAH
Data/Editor/Shaders/PickingAlphaCullCCW.bsl.asset


TEMPAT SAMPAH
Data/Editor/Shaders/PickingAlphaCullCW.bsl.asset


TEMPAT SAMPAH
Data/Editor/Shaders/PickingAlphaCullNone.bsl.asset


TEMPAT SAMPAH
Data/Editor/Shaders/PickingCullCCW.bsl.asset


TEMPAT SAMPAH
Data/Editor/Shaders/PickingCullCW.bsl.asset


TEMPAT SAMPAH
Data/Editor/Shaders/PickingCullNone.bsl.asset


TEMPAT SAMPAH
Data/Editor/Shaders/SceneGrid.bsl.asset


TEMPAT SAMPAH
Data/Editor/Timestamp.asset


TEMPAT SAMPAH
Data/Editor/arial.ttf.asset


TEMPAT SAMPAH
Data/Editor/arialAA.ttf.asset


TEMPAT SAMPAH
Data/Engine/GUISkin.asset


TEMPAT SAMPAH
Data/Engine/Includes/SpriteImage.bslinc.asset


TEMPAT SAMPAH
Data/Engine/ResourceManifest.asset


TEMPAT SAMPAH
Data/Engine/Shaders/SpriteImageAlpha.bsl.asset


TEMPAT SAMPAH
Data/Engine/Shaders/SpriteImageNoAlpha.bsl.asset


TEMPAT SAMPAH
Data/Engine/Shaders/SpriteLine.bsl.asset


TEMPAT SAMPAH
Data/Engine/Shaders/SpriteText.bsl.asset


TEMPAT SAMPAH
Data/Engine/Timestamp.asset


TEMPAT SAMPAH
Data/Engine/arial.ttf.asset


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

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

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

@@ -19,9 +19,12 @@ Technique =
 
 			void main(
 				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));
+				oNorm = float4(inNorm, 0);
 			}
 		};
 		
@@ -29,8 +32,13 @@ Technique =
 		{
 			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;
 			}
 		};
@@ -81,7 +89,8 @@ Technique =
 		{
 			uniform mat4 matWorldViewProj;
 			in vec3 bs_position;
-
+			in vec3 bs_normal;
+			out vec4 bs_outNorm
 			out gl_PerVertex
 			{
 				vec4 gl_Position;
@@ -89,17 +98,21 @@ Technique =
 			
 			void main()
 			{
+				bs_outNorm = vec4(bs_normal,0);
 				gl_Position = matWorldViewProj * vec4(bs_position.xyz, 1);
 			}
 		};
 		
 		Fragment =
 		{
+			in vec4 bs_outNorm;
 			uniform vec4 colorIndex;
+			out vec4 normalsColor;
 			out vec4 fragColor;
 
 			void main()
 			{
+				normalsColor = (bs_outNorm + vec4(1,1,1,0)) / 2;
 				fragColor = colorIndex;
 			}
 		};

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

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