Compare commits
	
		
			3 Commits 
		
	
	
		
			main
			...
			skybox_exa
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  | 72d960806a | |
|  | a654a5f9a3 | |
|  | 47ae1a0dbd | 
|  | @ -1,32 +1,6 @@ | ||||||
| { | { | ||||||
|   "version": "0.2.0", |   "version": "0.2.0", | ||||||
|   "configurations": [ |   "configurations": [ | ||||||
|     { |  | ||||||
|       "name": "Attach to Framework Debugger", |  | ||||||
|       "type": "clr", |  | ||||||
|       "request": "launch", |  | ||||||
|       "preLaunchTask": "Build: Framework Debug", |  | ||||||
|       "program": "${workspaceFolder}/KavTest/bin/Debug/net48/KavTest.exe", |  | ||||||
|       "args": [], |  | ||||||
|       "cwd": "${workspaceFolder}", |  | ||||||
|       "console": "integratedTerminal", |  | ||||||
|       "internalConsoleOptions": "neverOpen" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "name": "Attach to Mono Debugger", |  | ||||||
|       "type": "mono", |  | ||||||
|       "request": "launch", |  | ||||||
|       "preLaunchTask": "Build: Mono Debug", |  | ||||||
|       "program": "${workspaceFolder}/KavTest/bin/x64/Debug/net48/KavTest.exe", |  | ||||||
|       "args": [], |  | ||||||
|       "env": { |  | ||||||
|         "LD_LIBRARY_PATH": "./lib64", |  | ||||||
|         "DYLD_LIBRARY_PATH": "./osx" |  | ||||||
|       }, |  | ||||||
|       "cwd": "${workspaceFolder}/KavTest/bin/x64/Debug/net48", |  | ||||||
|       "console": "integratedTerminal", |  | ||||||
|       "internalConsoleOptions": "neverOpen" |  | ||||||
|     }, |  | ||||||
|     { |     { | ||||||
|       "name": "Attach to Core Debugger", |       "name": "Attach to Core Debugger", | ||||||
|       "type": "coreclr", |       "type": "coreclr", | ||||||
|  |  | ||||||
|  | @ -21,7 +21,7 @@ | ||||||
|   }, |   }, | ||||||
|   "tasks": [ |   "tasks": [ | ||||||
|     { |     { | ||||||
|       "label": "Build: Mono Release", |       "label": "Build: Framework Release", | ||||||
|       "command": "msbuild", |       "command": "msbuild", | ||||||
|       "args": [ |       "args": [ | ||||||
|         "-restore:True", |         "-restore:True", | ||||||
|  | @ -36,7 +36,7 @@ | ||||||
|       "problemMatcher": "$msCompile" |       "problemMatcher": "$msCompile" | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "label": "Run: Mono Release", |       "label": "Run: Framework Release", | ||||||
|       "command": "mono", |       "command": "mono", | ||||||
|       "args": [ |       "args": [ | ||||||
|         "KavTest.exe" |         "KavTest.exe" | ||||||
|  | @ -44,9 +44,10 @@ | ||||||
|       "options": { |       "options": { | ||||||
|         "env": { |         "env": { | ||||||
|           "LD_LIBRARY_PATH": "./lib64", |           "LD_LIBRARY_PATH": "./lib64", | ||||||
|           "DYLD_LIBRARY_PATH": "./osx" |           "DYLD_LIBRARY_PATH": "./osx", | ||||||
|  |           "FNA3D_FORCE_DRIVER": "Vulkan" | ||||||
|         }, |         }, | ||||||
|         "cwd": "${workspaceFolder}/KavTest/bin/x64/Release/net48" |         "cwd": "${workspaceFolder}/KavTest/bin/Release/net461" | ||||||
|       }, |       }, | ||||||
|       "type": "process", |       "type": "process", | ||||||
|       "group": { |       "group": { | ||||||
|  | @ -56,10 +57,10 @@ | ||||||
|       "problemMatcher": [] |       "problemMatcher": [] | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "label": "Build & Run: Mono Release", |       "label": "Build & Run: Framework Release", | ||||||
|       "dependsOn": [ |       "dependsOn": [ | ||||||
|         "Build: Mono Release", |         "Build: Framework Release", | ||||||
|         "Run: Mono Release" |         "Run: Framework Release" | ||||||
|       ], |       ], | ||||||
|       "dependsOrder": "sequence", |       "dependsOrder": "sequence", | ||||||
|       "type": "shell", |       "type": "shell", | ||||||
|  | @ -70,7 +71,7 @@ | ||||||
|       "problemMatcher": [] |       "problemMatcher": [] | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "label": "Build: Mono Debug", |       "label": "Build: Framework Debug", | ||||||
|       "command": "msbuild", |       "command": "msbuild", | ||||||
|       "args": [ |       "args": [ | ||||||
|         "-restore:True", |         "-restore:True", | ||||||
|  | @ -85,7 +86,7 @@ | ||||||
|       "problemMatcher": [] |       "problemMatcher": [] | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "label": "Run: Mono Debug", |       "label": "Run: Framework Debug", | ||||||
|       "command": "mono", |       "command": "mono", | ||||||
|       "args": [ |       "args": [ | ||||||
|         "KavTest.exe" |         "KavTest.exe" | ||||||
|  | @ -96,7 +97,7 @@ | ||||||
|           "DYLD_LIBRARY_PATH": "./osx", |           "DYLD_LIBRARY_PATH": "./osx", | ||||||
|           "FNA3D_FORCE_DRIVER": "OpenGL" |           "FNA3D_FORCE_DRIVER": "OpenGL" | ||||||
|         }, |         }, | ||||||
|         "cwd": "${workspaceFolder}/KavTest/bin/x64/Debug/net48" |         "cwd": "${workspaceFolder}/KavTest/bin/Debug/net461" | ||||||
|       }, |       }, | ||||||
|       "type": "process", |       "type": "process", | ||||||
|       "group": { |       "group": { | ||||||
|  | @ -106,10 +107,10 @@ | ||||||
|       "problemMatcher": [] |       "problemMatcher": [] | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "label": "Build & Run: Mono Debug", |       "label": "Build & Run: Framework Debug", | ||||||
|       "dependsOn": [ |       "dependsOn": [ | ||||||
|         "Build: Mono Debug", |         "Build: Framework Debug", | ||||||
|         "Run: Mono Debug" |         "Run: Framework Debug" | ||||||
|       ], |       ], | ||||||
|       "dependsOrder": "sequence", |       "dependsOrder": "sequence", | ||||||
|       "type": "shell", |       "type": "shell", | ||||||
|  | @ -218,92 +219,6 @@ | ||||||
|         "isDefault": true |         "isDefault": true | ||||||
|       }, |       }, | ||||||
|       "problemMatcher": [] |       "problemMatcher": [] | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "label": "Build: Framework Debug", |  | ||||||
|       "command": "MsBuild.exe", |  | ||||||
|       "args": [ |  | ||||||
|         "-restore:True", |  | ||||||
|         "${workspaceFolder}/KavTest.Framework.sln", |  | ||||||
|         "-p:Configuration=Debug", |  | ||||||
|         "-p:Platform=x64" |  | ||||||
|       ], |  | ||||||
|       "type": "shell", |  | ||||||
|       "group": { |  | ||||||
|         "kind": "build", |  | ||||||
|         "isDefault": true |  | ||||||
|       }, |  | ||||||
|       "problemMatcher": [] |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "label": "Run: Framework Debug", |  | ||||||
|       "command": "KavTest.exe", |  | ||||||
|       "options": { |  | ||||||
|         "cwd": "${workspaceFolder}/KavTest/bin/x64/Debug/net48" |  | ||||||
|       }, |  | ||||||
|       "type": "process", |  | ||||||
|       "group": { |  | ||||||
|         "kind": "build", |  | ||||||
|         "isDefault": true |  | ||||||
|       }, |  | ||||||
|       "problemMatcher": [] |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "label": "Build & Run: Framework Debug", |  | ||||||
|       "dependsOn": [ |  | ||||||
|         "Build: Framework Debug", |  | ||||||
|         "Run: Framework Debug" |  | ||||||
|       ], |  | ||||||
|       "dependsOrder": "sequence", |  | ||||||
|       "type": "shell", |  | ||||||
|       "group": { |  | ||||||
|         "kind": "build", |  | ||||||
|         "isDefault": true |  | ||||||
|       }, |  | ||||||
|       "problemMatcher": [] |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "label": "Build: Framework Release", |  | ||||||
|       "command": "MsBuild.exe", |  | ||||||
|       "args": [ |  | ||||||
|         "-restore:True", |  | ||||||
|         "${workspaceFolder}/KavTest.Framework.sln", |  | ||||||
|         "-p:Configuration=Release", |  | ||||||
|         "-p:Platform=x64" |  | ||||||
|       ], |  | ||||||
|       "type": "shell", |  | ||||||
|       "group": { |  | ||||||
|         "kind": "build", |  | ||||||
|         "isDefault": true |  | ||||||
|       }, |  | ||||||
|       "problemMatcher": [] |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "label": "Run: Framework Release", |  | ||||||
|       "command": "KavTest.exe", |  | ||||||
|       "options": { |  | ||||||
|         "cwd": "${workspaceFolder}/KavTest/bin/x64/Release/net48" |  | ||||||
|       }, |  | ||||||
|       "type": "process", |  | ||||||
|       "group": { |  | ||||||
|         "kind": "build", |  | ||||||
|         "isDefault": true |  | ||||||
|       }, |  | ||||||
|       "problemMatcher": [] |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "label": "Build & Run: Framework Release", |  | ||||||
|       "dependsOn": [ |  | ||||||
|         "Build: Framework Release", |  | ||||||
|         "Run: Framework Release" |  | ||||||
|       ], |  | ||||||
|       "dependsOrder": "sequence", |  | ||||||
|       "type": "shell", |  | ||||||
|       "group": { |  | ||||||
|         "kind": "build", |  | ||||||
|         "isDefault": true |  | ||||||
|       }, |  | ||||||
|       "problemMatcher": [] |  | ||||||
|     } |     } | ||||||
|   ] |   ] | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								FNA
								
								
								
								
							
							
								
								
								
								
								
								
							
						
						
									
										2
									
								
								FNA
								
								
								
								
							|  | @ -1 +1 @@ | ||||||
| Subproject commit 7357a6f297fee33b7a8d5afddaca30480c591ba5 | Subproject commit 1df9f588a701eefc4b55a0869cd5871be0124307 | ||||||
							
								
								
									
										2
									
								
								Kav
								
								
								
								
							
							
								
								
								
								
								
								
							
						
						
									
										2
									
								
								Kav
								
								
								
								
							|  | @ -1 +1 @@ | ||||||
| Subproject commit 1723f1dff8898e1d108135e13901bfa6ea3bb0fe | Subproject commit 06e552399600be4b706249bab54740eae4fd8e6b | ||||||
|  | @ -1,61 +1,48 @@ | ||||||
|  |  | ||||||
| Microsoft Visual Studio Solution File, Format Version 12.00 | Microsoft Visual Studio Solution File, Format Version 12.00 | ||||||
| # Visual Studio Version 16 | # Visual Studio 15 | ||||||
| VisualStudioVersion = 16.0.30717.126 | VisualStudioVersion = 15.0.26124.0 | ||||||
| MinimumVisualStudioVersion = 15.0.26124.0 | MinimumVisualStudioVersion = 15.0.26124.0 | ||||||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KavTest.Core", "KavTest\KavTest.Core.csproj", "{98DFC9BD-FBA1-4562-AAA0-466BED7102D3}" | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KavTest.Core", "KavTest\KavTest.Core.csproj", "{4589302C-174A-4173-9654-CAA6CA1B5220}" | ||||||
| EndProject | EndProject | ||||||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FNA.Core", "FNA\FNA.Core.csproj", "{C674DC0C-0ADF-410F-B7F5-307748973352}" | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kav", "Kav\Kav.Core.csproj", "{08398000-DF30-465A-AE07-E11D108B8A74}" | ||||||
| EndProject |  | ||||||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kav.Core", "Kav\Kav.Core.csproj", "{E75FECE9-6919-4DF8-8847-1F7CB523D390}" |  | ||||||
| EndProject |  | ||||||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Smuggler.Core", "Smuggler\Smuggler.Core.csproj", "{C11884A7-61B3-41F2-A3DA-2E7A58E1DC80}" |  | ||||||
| EndProject |  | ||||||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bonk", "MoonTools.Bonk\Bonk\Bonk.csproj", "{66453D48-F637-4289-9775-84639EE4005F}" |  | ||||||
| EndProject |  | ||||||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "encompass-cs", "encompass-cs\encompass-cs\encompass-cs.csproj", "{FEEEF90D-B4C1-4E39-929B-DC525A5AB048}" |  | ||||||
| EndProject |  | ||||||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Curve", "MoonTools.Curve\Curve\Curve.csproj", "{335EAE2A-2F19-44FD-AD24-238CCE61B697}" |  | ||||||
| EndProject | EndProject | ||||||
| Global | Global | ||||||
| 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||||
|  | 		Debug|Any CPU = Debug|Any CPU | ||||||
| 		Debug|x64 = Debug|x64 | 		Debug|x64 = Debug|x64 | ||||||
|  | 		Debug|x86 = Debug|x86 | ||||||
|  | 		Release|Any CPU = Release|Any CPU | ||||||
| 		Release|x64 = Release|x64 | 		Release|x64 = Release|x64 | ||||||
| 	EndGlobalSection | 		Release|x86 = Release|x86 | ||||||
| 	GlobalSection(ProjectConfigurationPlatforms) = postSolution |  | ||||||
| 		{98DFC9BD-FBA1-4562-AAA0-466BED7102D3}.Debug|x64.ActiveCfg = Debug|x64 |  | ||||||
| 		{98DFC9BD-FBA1-4562-AAA0-466BED7102D3}.Debug|x64.Build.0 = Debug|x64 |  | ||||||
| 		{98DFC9BD-FBA1-4562-AAA0-466BED7102D3}.Release|x64.ActiveCfg = Release|x64 |  | ||||||
| 		{98DFC9BD-FBA1-4562-AAA0-466BED7102D3}.Release|x64.Build.0 = Release|x64 |  | ||||||
| 		{C674DC0C-0ADF-410F-B7F5-307748973352}.Debug|x64.ActiveCfg = Debug|x64 |  | ||||||
| 		{C674DC0C-0ADF-410F-B7F5-307748973352}.Debug|x64.Build.0 = Debug|x64 |  | ||||||
| 		{C674DC0C-0ADF-410F-B7F5-307748973352}.Release|x64.ActiveCfg = Release|x64 |  | ||||||
| 		{C674DC0C-0ADF-410F-B7F5-307748973352}.Release|x64.Build.0 = Release|x64 |  | ||||||
| 		{E75FECE9-6919-4DF8-8847-1F7CB523D390}.Debug|x64.ActiveCfg = Debug|x64 |  | ||||||
| 		{E75FECE9-6919-4DF8-8847-1F7CB523D390}.Debug|x64.Build.0 = Debug|x64 |  | ||||||
| 		{E75FECE9-6919-4DF8-8847-1F7CB523D390}.Release|x64.ActiveCfg = Release|x64 |  | ||||||
| 		{E75FECE9-6919-4DF8-8847-1F7CB523D390}.Release|x64.Build.0 = Release|x64 |  | ||||||
| 		{C11884A7-61B3-41F2-A3DA-2E7A58E1DC80}.Debug|x64.ActiveCfg = Debug|x64 |  | ||||||
| 		{C11884A7-61B3-41F2-A3DA-2E7A58E1DC80}.Debug|x64.Build.0 = Debug|x64 |  | ||||||
| 		{C11884A7-61B3-41F2-A3DA-2E7A58E1DC80}.Release|x64.ActiveCfg = Release|x64 |  | ||||||
| 		{C11884A7-61B3-41F2-A3DA-2E7A58E1DC80}.Release|x64.Build.0 = Release|x64 |  | ||||||
| 		{66453D48-F637-4289-9775-84639EE4005F}.Debug|x64.ActiveCfg = Debug|x64 |  | ||||||
| 		{66453D48-F637-4289-9775-84639EE4005F}.Debug|x64.Build.0 = Debug|x64 |  | ||||||
| 		{66453D48-F637-4289-9775-84639EE4005F}.Release|x64.ActiveCfg = Release|x64 |  | ||||||
| 		{66453D48-F637-4289-9775-84639EE4005F}.Release|x64.Build.0 = Release|x64 |  | ||||||
| 		{FEEEF90D-B4C1-4E39-929B-DC525A5AB048}.Debug|x64.ActiveCfg = Debug|x64 |  | ||||||
| 		{FEEEF90D-B4C1-4E39-929B-DC525A5AB048}.Debug|x64.Build.0 = Debug|x64 |  | ||||||
| 		{FEEEF90D-B4C1-4E39-929B-DC525A5AB048}.Release|x64.ActiveCfg = Release|x64 |  | ||||||
| 		{FEEEF90D-B4C1-4E39-929B-DC525A5AB048}.Release|x64.Build.0 = Release|x64 |  | ||||||
| 		{335EAE2A-2F19-44FD-AD24-238CCE61B697}.Debug|x64.ActiveCfg = Debug|x64 |  | ||||||
| 		{335EAE2A-2F19-44FD-AD24-238CCE61B697}.Debug|x64.Build.0 = Debug|x64 |  | ||||||
| 		{335EAE2A-2F19-44FD-AD24-238CCE61B697}.Release|x64.ActiveCfg = Release|x64 |  | ||||||
| 		{335EAE2A-2F19-44FD-AD24-238CCE61B697}.Release|x64.Build.0 = Release|x64 |  | ||||||
| 	EndGlobalSection | 	EndGlobalSection | ||||||
| 	GlobalSection(SolutionProperties) = preSolution | 	GlobalSection(SolutionProperties) = preSolution | ||||||
| 		HideSolutionNode = FALSE | 		HideSolutionNode = FALSE | ||||||
| 	EndGlobalSection | 	EndGlobalSection | ||||||
| 	GlobalSection(ExtensibilityGlobals) = postSolution | 	GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||||||
| 		SolutionGuid = {EE29AB8C-0987-4AB5-B007-05F81EFD7291} | 		{4589302C-174A-4173-9654-CAA6CA1B5220}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{4589302C-174A-4173-9654-CAA6CA1B5220}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||||
|  | 		{4589302C-174A-4173-9654-CAA6CA1B5220}.Debug|x64.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{4589302C-174A-4173-9654-CAA6CA1B5220}.Debug|x64.Build.0 = Debug|Any CPU | ||||||
|  | 		{4589302C-174A-4173-9654-CAA6CA1B5220}.Debug|x86.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{4589302C-174A-4173-9654-CAA6CA1B5220}.Debug|x86.Build.0 = Debug|Any CPU | ||||||
|  | 		{4589302C-174A-4173-9654-CAA6CA1B5220}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||||||
|  | 		{4589302C-174A-4173-9654-CAA6CA1B5220}.Release|Any CPU.Build.0 = Release|Any CPU | ||||||
|  | 		{4589302C-174A-4173-9654-CAA6CA1B5220}.Release|x64.ActiveCfg = Release|Any CPU | ||||||
|  | 		{4589302C-174A-4173-9654-CAA6CA1B5220}.Release|x64.Build.0 = Release|Any CPU | ||||||
|  | 		{4589302C-174A-4173-9654-CAA6CA1B5220}.Release|x86.ActiveCfg = Release|Any CPU | ||||||
|  | 		{4589302C-174A-4173-9654-CAA6CA1B5220}.Release|x86.Build.0 = Release|Any CPU | ||||||
|  | 		{08398000-DF30-465A-AE07-E11D108B8A74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{08398000-DF30-465A-AE07-E11D108B8A74}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||||
|  | 		{08398000-DF30-465A-AE07-E11D108B8A74}.Debug|x64.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{08398000-DF30-465A-AE07-E11D108B8A74}.Debug|x64.Build.0 = Debug|Any CPU | ||||||
|  | 		{08398000-DF30-465A-AE07-E11D108B8A74}.Debug|x86.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{08398000-DF30-465A-AE07-E11D108B8A74}.Debug|x86.Build.0 = Debug|Any CPU | ||||||
|  | 		{08398000-DF30-465A-AE07-E11D108B8A74}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||||||
|  | 		{08398000-DF30-465A-AE07-E11D108B8A74}.Release|Any CPU.Build.0 = Release|Any CPU | ||||||
|  | 		{08398000-DF30-465A-AE07-E11D108B8A74}.Release|x64.ActiveCfg = Release|Any CPU | ||||||
|  | 		{08398000-DF30-465A-AE07-E11D108B8A74}.Release|x64.Build.0 = Release|Any CPU | ||||||
|  | 		{08398000-DF30-465A-AE07-E11D108B8A74}.Release|x86.ActiveCfg = Release|Any CPU | ||||||
|  | 		{08398000-DF30-465A-AE07-E11D108B8A74}.Release|x86.Build.0 = Release|Any CPU | ||||||
| 	EndGlobalSection | 	EndGlobalSection | ||||||
| EndGlobal | EndGlobal | ||||||
|  |  | ||||||
|  | @ -1,61 +1,76 @@ | ||||||
|  |  | ||||||
| Microsoft Visual Studio Solution File, Format Version 12.00 | Microsoft Visual Studio Solution File, Format Version 12.00 | ||||||
| # Visual Studio Version 16 | # Visual Studio 15 | ||||||
| VisualStudioVersion = 16.0.30717.126 | VisualStudioVersion = 15.0.26124.0 | ||||||
| MinimumVisualStudioVersion = 15.0.26124.0 | MinimumVisualStudioVersion = 15.0.26124.0 | ||||||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Smuggler.Framework", "Smuggler\Smuggler.Framework.csproj", "{06664804-2B01-46F5-B8EC-07E5E2C1EADC}" | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FNATemplate.Framework", "KavTest\KavTest.Framework.csproj", "{9ED076FA-32C3-4F1E-BB90-549B3A2FA46F}" | ||||||
|  | EndProject | ||||||
|  | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kav", "Kav\Kav.Framework.csproj", "{9B2EC2DE-7E2C-4768-B812-43AB4C7E31C5}" | ||||||
|  | EndProject | ||||||
|  | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Smuggler", "Smuggler\Smuggler.Framework.csproj", "{06664804-2B01-46F5-B8EC-07E5E2C1EADC}" | ||||||
| EndProject | EndProject | ||||||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FNA", "FNA\FNA.csproj", "{35253CE1-C864-4CD3-8249-4D1319748E8F}" | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FNA", "FNA\FNA.csproj", "{35253CE1-C864-4CD3-8249-4D1319748E8F}" | ||||||
| EndProject | EndProject | ||||||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kav.Framework", "Kav\Kav.Framework.csproj", "{9DCFEB6B-7C62-4F6B-A78F-168FAA474145}" |  | ||||||
| EndProject |  | ||||||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KavTest.Framework", "KavTest\KavTest.Framework.csproj", "{A4DFCA0B-D54D-42C0-ABA9-1A1842D39927}" |  | ||||||
| EndProject |  | ||||||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Curve", "MoonTools.Curve\Curve\Curve.csproj", "{572DCC26-4184-45B1-B813-5C798E106E76}" |  | ||||||
| EndProject |  | ||||||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bonk", "MoonTools.Bonk\Bonk\Bonk.csproj", "{16F6F157-1C3D-4E94-A222-66AF0CC360B1}" |  | ||||||
| EndProject |  | ||||||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "encompass-cs", "encompass-cs\encompass-cs\encompass-cs.csproj", "{F23E4933-6B1F-4E29-B165-6C640D7B33DA}" |  | ||||||
| EndProject |  | ||||||
| Global | Global | ||||||
| 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||||
|  | 		Debug|Any CPU = Debug|Any CPU | ||||||
| 		Debug|x64 = Debug|x64 | 		Debug|x64 = Debug|x64 | ||||||
|  | 		Debug|x86 = Debug|x86 | ||||||
|  | 		Release|Any CPU = Release|Any CPU | ||||||
| 		Release|x64 = Release|x64 | 		Release|x64 = Release|x64 | ||||||
| 	EndGlobalSection | 		Release|x86 = Release|x86 | ||||||
| 	GlobalSection(ProjectConfigurationPlatforms) = postSolution |  | ||||||
| 		{06664804-2B01-46F5-B8EC-07E5E2C1EADC}.Debug|x64.ActiveCfg = Debug|x64 |  | ||||||
| 		{06664804-2B01-46F5-B8EC-07E5E2C1EADC}.Debug|x64.Build.0 = Debug|x64 |  | ||||||
| 		{06664804-2B01-46F5-B8EC-07E5E2C1EADC}.Release|x64.ActiveCfg = Release|x64 |  | ||||||
| 		{06664804-2B01-46F5-B8EC-07E5E2C1EADC}.Release|x64.Build.0 = Release|x64 |  | ||||||
| 		{35253CE1-C864-4CD3-8249-4D1319748E8F}.Debug|x64.ActiveCfg = Debug|x64 |  | ||||||
| 		{35253CE1-C864-4CD3-8249-4D1319748E8F}.Debug|x64.Build.0 = Debug|x64 |  | ||||||
| 		{35253CE1-C864-4CD3-8249-4D1319748E8F}.Release|x64.ActiveCfg = Debug|x64 |  | ||||||
| 		{35253CE1-C864-4CD3-8249-4D1319748E8F}.Release|x64.Build.0 = Debug|x64 |  | ||||||
| 		{9DCFEB6B-7C62-4F6B-A78F-168FAA474145}.Debug|x64.ActiveCfg = Debug|x64 |  | ||||||
| 		{9DCFEB6B-7C62-4F6B-A78F-168FAA474145}.Debug|x64.Build.0 = Debug|x64 |  | ||||||
| 		{9DCFEB6B-7C62-4F6B-A78F-168FAA474145}.Release|x64.ActiveCfg = Release|x64 |  | ||||||
| 		{9DCFEB6B-7C62-4F6B-A78F-168FAA474145}.Release|x64.Build.0 = Release|x64 |  | ||||||
| 		{A4DFCA0B-D54D-42C0-ABA9-1A1842D39927}.Debug|x64.ActiveCfg = Debug|x64 |  | ||||||
| 		{A4DFCA0B-D54D-42C0-ABA9-1A1842D39927}.Debug|x64.Build.0 = Debug|x64 |  | ||||||
| 		{A4DFCA0B-D54D-42C0-ABA9-1A1842D39927}.Release|x64.ActiveCfg = Release|x64 |  | ||||||
| 		{A4DFCA0B-D54D-42C0-ABA9-1A1842D39927}.Release|x64.Build.0 = Release|x64 |  | ||||||
| 		{572DCC26-4184-45B1-B813-5C798E106E76}.Debug|x64.ActiveCfg = Debug|x64 |  | ||||||
| 		{572DCC26-4184-45B1-B813-5C798E106E76}.Debug|x64.Build.0 = Debug|x64 |  | ||||||
| 		{572DCC26-4184-45B1-B813-5C798E106E76}.Release|x64.ActiveCfg = Release|x64 |  | ||||||
| 		{572DCC26-4184-45B1-B813-5C798E106E76}.Release|x64.Build.0 = Release|x64 |  | ||||||
| 		{16F6F157-1C3D-4E94-A222-66AF0CC360B1}.Debug|x64.ActiveCfg = Debug|x64 |  | ||||||
| 		{16F6F157-1C3D-4E94-A222-66AF0CC360B1}.Debug|x64.Build.0 = Debug|x64 |  | ||||||
| 		{16F6F157-1C3D-4E94-A222-66AF0CC360B1}.Release|x64.ActiveCfg = Release|x64 |  | ||||||
| 		{16F6F157-1C3D-4E94-A222-66AF0CC360B1}.Release|x64.Build.0 = Release|x64 |  | ||||||
| 		{F23E4933-6B1F-4E29-B165-6C640D7B33DA}.Debug|x64.ActiveCfg = Debug|x64 |  | ||||||
| 		{F23E4933-6B1F-4E29-B165-6C640D7B33DA}.Debug|x64.Build.0 = Debug|x64 |  | ||||||
| 		{F23E4933-6B1F-4E29-B165-6C640D7B33DA}.Release|x64.ActiveCfg = Release|x64 |  | ||||||
| 		{F23E4933-6B1F-4E29-B165-6C640D7B33DA}.Release|x64.Build.0 = Release|x64 |  | ||||||
| 	EndGlobalSection | 	EndGlobalSection | ||||||
| 	GlobalSection(SolutionProperties) = preSolution | 	GlobalSection(SolutionProperties) = preSolution | ||||||
| 		HideSolutionNode = FALSE | 		HideSolutionNode = FALSE | ||||||
| 	EndGlobalSection | 	EndGlobalSection | ||||||
| 	GlobalSection(ExtensibilityGlobals) = postSolution | 	GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||||||
| 		SolutionGuid = {F5E92C03-53E8-4716-B589-BC692E409E40} | 		{9ED076FA-32C3-4F1E-BB90-549B3A2FA46F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{9ED076FA-32C3-4F1E-BB90-549B3A2FA46F}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||||
|  | 		{9ED076FA-32C3-4F1E-BB90-549B3A2FA46F}.Debug|x64.ActiveCfg = Debug|x64 | ||||||
|  | 		{9ED076FA-32C3-4F1E-BB90-549B3A2FA46F}.Debug|x64.Build.0 = Debug|x64 | ||||||
|  | 		{9ED076FA-32C3-4F1E-BB90-549B3A2FA46F}.Debug|x86.ActiveCfg = Debug|x86 | ||||||
|  | 		{9ED076FA-32C3-4F1E-BB90-549B3A2FA46F}.Debug|x86.Build.0 = Debug|x86 | ||||||
|  | 		{9ED076FA-32C3-4F1E-BB90-549B3A2FA46F}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||||||
|  | 		{9ED076FA-32C3-4F1E-BB90-549B3A2FA46F}.Release|Any CPU.Build.0 = Release|Any CPU | ||||||
|  | 		{9ED076FA-32C3-4F1E-BB90-549B3A2FA46F}.Release|x64.ActiveCfg = Release|Any CPU | ||||||
|  | 		{9ED076FA-32C3-4F1E-BB90-549B3A2FA46F}.Release|x64.Build.0 = Release|Any CPU | ||||||
|  | 		{9ED076FA-32C3-4F1E-BB90-549B3A2FA46F}.Release|x86.ActiveCfg = Release|Any CPU | ||||||
|  | 		{9ED076FA-32C3-4F1E-BB90-549B3A2FA46F}.Release|x86.Build.0 = Release|Any CPU | ||||||
|  | 		{9B2EC2DE-7E2C-4768-B812-43AB4C7E31C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{9B2EC2DE-7E2C-4768-B812-43AB4C7E31C5}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||||
|  | 		{9B2EC2DE-7E2C-4768-B812-43AB4C7E31C5}.Debug|x64.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{9B2EC2DE-7E2C-4768-B812-43AB4C7E31C5}.Debug|x64.Build.0 = Debug|Any CPU | ||||||
|  | 		{9B2EC2DE-7E2C-4768-B812-43AB4C7E31C5}.Debug|x86.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{9B2EC2DE-7E2C-4768-B812-43AB4C7E31C5}.Debug|x86.Build.0 = Debug|Any CPU | ||||||
|  | 		{9B2EC2DE-7E2C-4768-B812-43AB4C7E31C5}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||||||
|  | 		{9B2EC2DE-7E2C-4768-B812-43AB4C7E31C5}.Release|Any CPU.Build.0 = Release|Any CPU | ||||||
|  | 		{9B2EC2DE-7E2C-4768-B812-43AB4C7E31C5}.Release|x64.ActiveCfg = Release|Any CPU | ||||||
|  | 		{9B2EC2DE-7E2C-4768-B812-43AB4C7E31C5}.Release|x64.Build.0 = Release|Any CPU | ||||||
|  | 		{9B2EC2DE-7E2C-4768-B812-43AB4C7E31C5}.Release|x86.ActiveCfg = Release|Any CPU | ||||||
|  | 		{9B2EC2DE-7E2C-4768-B812-43AB4C7E31C5}.Release|x86.Build.0 = Release|Any CPU | ||||||
|  | 		{06664804-2B01-46F5-B8EC-07E5E2C1EADC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{06664804-2B01-46F5-B8EC-07E5E2C1EADC}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||||
|  | 		{06664804-2B01-46F5-B8EC-07E5E2C1EADC}.Debug|x64.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{06664804-2B01-46F5-B8EC-07E5E2C1EADC}.Debug|x64.Build.0 = Debug|Any CPU | ||||||
|  | 		{06664804-2B01-46F5-B8EC-07E5E2C1EADC}.Debug|x86.ActiveCfg = Debug|x86 | ||||||
|  | 		{06664804-2B01-46F5-B8EC-07E5E2C1EADC}.Debug|x86.Build.0 = Debug|x86 | ||||||
|  | 		{06664804-2B01-46F5-B8EC-07E5E2C1EADC}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||||||
|  | 		{06664804-2B01-46F5-B8EC-07E5E2C1EADC}.Release|Any CPU.Build.0 = Release|Any CPU | ||||||
|  | 		{06664804-2B01-46F5-B8EC-07E5E2C1EADC}.Release|x64.ActiveCfg = Release|Any CPU | ||||||
|  | 		{06664804-2B01-46F5-B8EC-07E5E2C1EADC}.Release|x64.Build.0 = Release|Any CPU | ||||||
|  | 		{06664804-2B01-46F5-B8EC-07E5E2C1EADC}.Release|x86.ActiveCfg = Release|x86 | ||||||
|  | 		{06664804-2B01-46F5-B8EC-07E5E2C1EADC}.Release|x86.Build.0 = Release|x86 | ||||||
|  | 		{35253CE1-C864-4CD3-8249-4D1319748E8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{35253CE1-C864-4CD3-8249-4D1319748E8F}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||||
|  | 		{35253CE1-C864-4CD3-8249-4D1319748E8F}.Debug|x64.ActiveCfg = Debug|x64 | ||||||
|  | 		{35253CE1-C864-4CD3-8249-4D1319748E8F}.Debug|x64.Build.0 = Debug|x64 | ||||||
|  | 		{35253CE1-C864-4CD3-8249-4D1319748E8F}.Debug|x86.ActiveCfg = Debug|x86 | ||||||
|  | 		{35253CE1-C864-4CD3-8249-4D1319748E8F}.Debug|x86.Build.0 = Debug|x86 | ||||||
|  | 		{35253CE1-C864-4CD3-8249-4D1319748E8F}.Release|Any CPU.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{35253CE1-C864-4CD3-8249-4D1319748E8F}.Release|Any CPU.Build.0 = Debug|Any CPU | ||||||
|  | 		{35253CE1-C864-4CD3-8249-4D1319748E8F}.Release|x64.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{35253CE1-C864-4CD3-8249-4D1319748E8F}.Release|x64.Build.0 = Debug|Any CPU | ||||||
|  | 		{35253CE1-C864-4CD3-8249-4D1319748E8F}.Release|x86.ActiveCfg = Debug|Any CPU | ||||||
|  | 		{35253CE1-C864-4CD3-8249-4D1319748E8F}.Release|x86.Build.0 = Debug|Any CPU | ||||||
| 	EndGlobalSection | 	EndGlobalSection | ||||||
| EndGlobal | EndGlobal | ||||||
|  |  | ||||||
|  | @ -1,6 +0,0 @@ | ||||||
| using Encompass; |  | ||||||
| 
 |  | ||||||
| namespace KavTest.Components |  | ||||||
| { |  | ||||||
|     public struct InstancedCubeComponent : IComponent { } |  | ||||||
| } |  | ||||||
|  | @ -1,16 +0,0 @@ | ||||||
| using Encompass; |  | ||||||
| using Kav; |  | ||||||
| 
 |  | ||||||
| namespace KavTest |  | ||||||
| { |  | ||||||
|     public struct MeshSpriteComponent : IComponent |  | ||||||
|     { |  | ||||||
|         public MeshSprite MeshSprite { get; } |  | ||||||
| 
 |  | ||||||
|         public MeshSpriteComponent( |  | ||||||
|             MeshSprite meshSprite |  | ||||||
|         ) { |  | ||||||
|             MeshSprite = meshSprite; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -6,12 +6,10 @@ namespace KavTest.Components | ||||||
|     public struct ModelComponent : IComponent |     public struct ModelComponent : IComponent | ||||||
|     { |     { | ||||||
|         public Model Model { get; } |         public Model Model { get; } | ||||||
|         public bool Instanced { get; } |  | ||||||
| 
 | 
 | ||||||
|         public ModelComponent(Model model, bool instanced) |         public ModelComponent(Model model) | ||||||
|         { |         { | ||||||
|             Model = model; |             Model = model; | ||||||
|             Instanced = instanced; |  | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,19 +0,0 @@ | ||||||
| using Encompass; |  | ||||||
| using Microsoft.Xna.Framework; |  | ||||||
| 
 |  | ||||||
| namespace KavTest.Components |  | ||||||
| { |  | ||||||
|     public struct SpotLightComponent : IComponent |  | ||||||
|     { |  | ||||||
|         public Color Color { get; } |  | ||||||
|         public float Intensity { get; } |  | ||||||
|         public float Angle { get; } |  | ||||||
|          |  | ||||||
|         public SpotLightComponent(Color color, float intensity, float angleInRadians) |  | ||||||
|         { |  | ||||||
|             Color = color; |  | ||||||
|             Intensity = intensity; |  | ||||||
|             Angle = angleInRadians; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,27 +0,0 @@ | ||||||
| using Encompass; |  | ||||||
| using Kav; |  | ||||||
| using Microsoft.Xna.Framework; |  | ||||||
| using Microsoft.Xna.Framework.Graphics; |  | ||||||
| 
 |  | ||||||
| namespace KavTest |  | ||||||
| { |  | ||||||
|     public struct SpriteComponent : IComponent |  | ||||||
|     { |  | ||||||
|         public Texture2D Texture { get; } |  | ||||||
|         public Vector2 Origin { get; } |  | ||||||
|         public float Rotation { get; } |  | ||||||
|         public SpriteBillboardConstraint BillboardConstraint { get; } |  | ||||||
| 
 |  | ||||||
|         public SpriteComponent( |  | ||||||
|             Texture2D texture, |  | ||||||
|             Vector2 origin, |  | ||||||
|             float rotation, |  | ||||||
|             SpriteBillboardConstraint billboardConstraint |  | ||||||
|         ) { |  | ||||||
|             Texture = texture; |  | ||||||
|             Origin = origin; |  | ||||||
|             Rotation = rotation; |  | ||||||
|             BillboardConstraint = billboardConstraint; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,9 +0,0 @@ | ||||||
| using Encompass; |  | ||||||
| 
 |  | ||||||
| namespace KavTest.Components |  | ||||||
| { |  | ||||||
|     public struct StaticComponent : IComponent |  | ||||||
|     { |  | ||||||
| 
 |  | ||||||
|     } |  | ||||||
| } |  | ||||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 1.1 KiB | 
							
								
								
									
										
											BIN
										
									
								
								KavTest/Content/ToonShadeRuins.glb (Stored with Git LFS)
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								KavTest/Content/ToonShadeRuins.glb (Stored with Git LFS)
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								KavTest/Content/avocado.glb (Stored with Git LFS)
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								KavTest/Content/avocado.glb (Stored with Git LFS)
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								KavTest/Content/bluetorus.glb (Stored with Git LFS)
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								KavTest/Content/bluetorus.glb (Stored with Git LFS)
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								KavTest/Content/cube.glb (Stored with Git LFS)
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								KavTest/Content/cube.glb (Stored with Git LFS)
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								KavTest/Content/floor.glb (Stored with Git LFS)
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								KavTest/Content/floor.glb (Stored with Git LFS)
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								KavTest/Content/pinkcone.glb (Stored with Git LFS)
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								KavTest/Content/pinkcone.glb (Stored with Git LFS)
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								KavTest/Content/redcylinder.glb (Stored with Git LFS)
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								KavTest/Content/redcylinder.glb (Stored with Git LFS)
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								KavTest/Content/rustysphere.glb (Stored with Git LFS)
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								KavTest/Content/rustysphere.glb (Stored with Git LFS)
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							|  | @ -50,7 +50,26 @@ namespace KavTest.Engines | ||||||
|                 if (SomeComponent<PerspectiveCameraComponent>()) |                 if (SomeComponent<PerspectiveCameraComponent>()) | ||||||
|                 { |                 { | ||||||
|                     var cameraEntity = ReadEntity<PerspectiveCameraComponent>(); |                     var cameraEntity = ReadEntity<PerspectiveCameraComponent>(); | ||||||
|                     SendMessage(new RotateCameraMessage(cameraEntity, -mouseState.X, -mouseState.Y)); | 
 | ||||||
|  |                     if (keyboardState.IsKeyDown(Keys.I)) | ||||||
|  |                     { | ||||||
|  |                         SendMessage(new RotateCameraMessage(cameraEntity, 0, 3)); | ||||||
|  |                     } | ||||||
|  | 
 | ||||||
|  |                     if (keyboardState.IsKeyDown(Keys.K)) | ||||||
|  |                     { | ||||||
|  |                         SendMessage(new RotateCameraMessage(cameraEntity, 0, -3)); | ||||||
|  |                     } | ||||||
|  | 
 | ||||||
|  |                     if (keyboardState.IsKeyDown(Keys.J)) | ||||||
|  |                     { | ||||||
|  |                         SendMessage(new RotateCameraMessage(cameraEntity, 3, 0)); | ||||||
|  |                     } | ||||||
|  | 
 | ||||||
|  |                     if (keyboardState.IsKeyDown(Keys.L)) | ||||||
|  |                     { | ||||||
|  |                         SendMessage(new RotateCameraMessage(cameraEntity, -3, 0)); | ||||||
|  |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -12,13 +12,11 @@ namespace KavTest.Engines | ||||||
|         typeof(LocalRotationMessage) |         typeof(LocalRotationMessage) | ||||||
|     )] |     )] | ||||||
|     [Writes(typeof(Transform3DComponent))] |     [Writes(typeof(Transform3DComponent))] | ||||||
|     [QueryWith(typeof(Transform3DComponent))] |  | ||||||
|     [QueryWithout(typeof(StaticComponent))] |  | ||||||
|     public class MotionEngine : Engine |     public class MotionEngine : Engine | ||||||
|     { |     { | ||||||
|         public override void Update(double dt) |         public override void Update(double dt) | ||||||
|         { |         { | ||||||
|             foreach (var entity in TrackedEntities) |             foreach (var entity in ReadEntities<Transform3DComponent>()) | ||||||
|             { |             { | ||||||
|                 ref readonly var transformComponent = ref GetComponent<Transform3DComponent>(entity); |                 ref readonly var transformComponent = ref GetComponent<Transform3DComponent>(entity); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -21,7 +21,7 @@ namespace KavTest.Spawners | ||||||
|             AddComponent(entity, new Transform3DComponent(message.Transform)); |             AddComponent(entity, new Transform3DComponent(message.Transform)); | ||||||
|             AddComponent(entity, new PointLightComponent(message.Color, message.Intensity)); |             AddComponent(entity, new PointLightComponent(message.Color, message.Intensity)); | ||||||
|             AddComponent(entity, new MoveAlongCurve3DComponent(message.Curve)); |             AddComponent(entity, new MoveAlongCurve3DComponent(message.Curve)); | ||||||
|             //AddComponent(entity, new ModelComponent(LightBulbModel)); |             AddComponent(entity, new ModelComponent(LightBulbModel)); | ||||||
|             AddComponent(entity, new OverrideAlbedoComponent(message.Color.ToVector3())); |             AddComponent(entity, new OverrideAlbedoComponent(message.Color.ToVector3())); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -1,18 +0,0 @@ | ||||||
| using Encompass; |  | ||||||
| using KavTest.Components; |  | ||||||
| using KavTest.Messages; |  | ||||||
| using Microsoft.Xna.Framework; |  | ||||||
| 
 |  | ||||||
| namespace KavTest.Spawners |  | ||||||
| { |  | ||||||
|     public class MeshSpriteSpawner : Spawner<MeshSpriteSpawnMessage> |  | ||||||
|     { |  | ||||||
|         protected override void Spawn(in MeshSpriteSpawnMessage message) |  | ||||||
|         { |  | ||||||
|             var entity = CreateEntity(); |  | ||||||
| 
 |  | ||||||
|             AddComponent(entity, new Transform3DComponent(message.Transform)); |  | ||||||
|             AddComponent(entity, new MeshSpriteComponent(message.MeshSprite)); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -19,7 +19,7 @@ namespace KavTest.Spawners | ||||||
|             var entity = CreateEntity(); |             var entity = CreateEntity(); | ||||||
| 
 | 
 | ||||||
|             AddComponent(entity, new Transform3DComponent(message.Transform)); |             AddComponent(entity, new Transform3DComponent(message.Transform)); | ||||||
|             AddComponent(entity, new ModelComponent(RustyBallModel, true)); |             AddComponent(entity, new ModelComponent(RustyBallModel)); | ||||||
|             AddComponent(entity, new AngularVelocityComponent(message.AngularVelocity)); |             AddComponent(entity, new AngularVelocityComponent(message.AngularVelocity)); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -11,7 +11,7 @@ namespace KavTest.Spawners | ||||||
|             var entity = CreateEntity(); |             var entity = CreateEntity(); | ||||||
| 
 | 
 | ||||||
|             AddComponent(entity, new Transform3DComponent(message.Transform)); |             AddComponent(entity, new Transform3DComponent(message.Transform)); | ||||||
|             AddComponent(entity, new ModelComponent(message.Model, true)); |             AddComponent(entity, new ModelComponent(message.Model)); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,32 +0,0 @@ | ||||||
| using Microsoft.Xna.Framework; |  | ||||||
| 
 |  | ||||||
| namespace KavTest.Extensions |  | ||||||
| { |  | ||||||
|     public static class QuaternionExtensions |  | ||||||
|     { |  | ||||||
|         public static Vector3 EulerAngles(this Quaternion q) |  | ||||||
|         { |  | ||||||
|             Vector3 angles; |  | ||||||
| 
 |  | ||||||
|             double sinr_cosp = 2 * (q.W * q.X + q.Y * q.Z); |  | ||||||
|             double cosr_cosp = 1 - 2 * (q.X * q.X + q.Y * q.Y); |  | ||||||
|             angles.X = (float) System.Math.Atan2(sinr_cosp, cosr_cosp); |  | ||||||
| 
 |  | ||||||
|             double sinp = 2 * (q.W * q.Y - q.Z * q.X); |  | ||||||
|             if (System.Math.Abs(sinp) >= 1) |  | ||||||
|             { |  | ||||||
|                 angles.Y = (float) System.Math.PI / 2 * System.Math.Sign(sinp); |  | ||||||
|             } |  | ||||||
|             else |  | ||||||
|             { |  | ||||||
|                 angles.Y = (float) System.Math.Asin(sinp); |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             double siny_cosp = 2 * (q.W * q.Z + q.X * q.Y); |  | ||||||
|             double cosy_cosp = 1 - 2 * (q.Y * q.Y + q.Z * q.Z); |  | ||||||
|             angles.Z = (float) System.Math.Atan2(siny_cosp, cosy_cosp); |  | ||||||
| 
 |  | ||||||
|             return angles; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,9 +0,0 @@ | ||||||
| using Kav; |  | ||||||
| 
 |  | ||||||
| namespace KavTest |  | ||||||
| { |  | ||||||
|     public class InstancedModelContainer |  | ||||||
|     { |  | ||||||
|         public MeshPart CubeModel { get; set; } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,7 +1,6 @@ | ||||||
| <Project> | <Project> | ||||||
| 	<PropertyGroup> | 	<PropertyGroup> | ||||||
| 		<BaseIntermediateOutputPath>obj\$(MSBuildKavTest)</BaseIntermediateOutputPath> | 		<BaseIntermediateOutputPath>obj\$(MSBuildKavTest)</BaseIntermediateOutputPath> | ||||||
| 		<Platforms>x64</Platforms> |  | ||||||
| 	</PropertyGroup> | 	</PropertyGroup> | ||||||
| 	<Import Sdk="Microsoft.NET.Sdk" Project="Sdk.props" /> | 	<Import Sdk="Microsoft.NET.Sdk" Project="Sdk.props" /> | ||||||
|   <PropertyGroup> |   <PropertyGroup> | ||||||
|  | @ -16,7 +15,7 @@ | ||||||
|     <RootNamespace>KavTest</RootNamespace> |     <RootNamespace>KavTest</RootNamespace> | ||||||
|     <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch> |     <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch> | ||||||
|     <RuntimeIdentifiers>win-x64;osx-x64;linux-x64</RuntimeIdentifiers> |     <RuntimeIdentifiers>win-x64;osx-x64;linux-x64</RuntimeIdentifiers> | ||||||
|     <ApplicationIcon /> |     <ApplicationIcon/> | ||||||
|   </PropertyGroup> |   </PropertyGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <Content Include="Content\**\*.*"> |     <Content Include="Content\**\*.*"> | ||||||
|  | @ -24,13 +23,13 @@ | ||||||
|     </Content> |     </Content> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <ProjectReference Include="..\FNA\FNA.Core.csproj" /> |     <ProjectReference Include="..\FNA\FNA.Core.csproj"/> | ||||||
|     <ProjectReference Include="..\encompass-cs\encompass-cs\encompass-cs.csproj" /> |     <ProjectReference Include="..\encompass-cs\encompass-cs\encompass-cs.csproj" /> | ||||||
|     <ProjectReference Include="..\Kav\Kav.Core.csproj" /> |     <ProjectReference Include="..\Kav\Kav.Core.csproj" /> | ||||||
|     <ProjectReference Include="..\Smuggler\Smuggler.Core.csproj" /> |     <ProjectReference Include="..\Smuggler\Smuggler.Core.csproj" /> | ||||||
|     <ProjectReference Include="..\MoonTools.Curve\Curve\Curve.csproj" /> |     <ProjectReference Include="..\MoonTools.Curve\Curve\Curve.csproj" /> | ||||||
|     <ProjectReference Include="..\MoonTools.Bonk\Bonk\Bonk.csproj" /> |     <ProjectReference Include="..\MoonTools.Bonk\Bonk\Bonk.csproj" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <Import Project="..\build\CopyFNALibs.targets" /> |   <Import Project="..\build\CopyFNALibs.targets"/> | ||||||
|   <Import Sdk="Microsoft.NET.Sdk" Project="Sdk.targets" /> |   <Import Sdk="Microsoft.NET.Sdk" Project="Sdk.targets" /> | ||||||
| </Project> | </Project> | ||||||
|  |  | ||||||
|  | @ -1,14 +1,12 @@ | ||||||
| <Project> | <Project> | ||||||
| 	<PropertyGroup> | 	<PropertyGroup> | ||||||
| 		<BaseIntermediateOutputPath>obj\$(MSBuildKavTest)</BaseIntermediateOutputPath> | 		<BaseIntermediateOutputPath>obj\$(MSBuildKavTest)</BaseIntermediateOutputPath> | ||||||
| 		<Platforms>x64</Platforms> |  | ||||||
| 	</PropertyGroup> | 	</PropertyGroup> | ||||||
| 	<Import Sdk="Microsoft.NET.Sdk" Project="Sdk.props" /> | 	<Import Sdk="Microsoft.NET.Sdk" Project="Sdk.props" /> | ||||||
|   <PropertyGroup> |   <PropertyGroup> | ||||||
|     <OutputType>WinExe</OutputType> |     <OutputType>WinExe</OutputType> | ||||||
|     <TargetFramework>net48</TargetFramework> |     <TargetFramework>net461</TargetFramework> | ||||||
|     <TargetName>KavTest</TargetName> |     <TargetName>KavTest</TargetName> | ||||||
|     <PlatformTarget>x64</PlatformTarget> |  | ||||||
|     <GenerateAssemblyInfo>false</GenerateAssemblyInfo> |     <GenerateAssemblyInfo>false</GenerateAssemblyInfo> | ||||||
|     <GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute> |     <GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute> | ||||||
|     <LangVersion>8.0</LangVersion> |     <LangVersion>8.0</LangVersion> | ||||||
|  | @ -17,7 +15,7 @@ | ||||||
|     <RootNamespace>KavTest</RootNamespace> |     <RootNamespace>KavTest</RootNamespace> | ||||||
|     <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch> |     <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch> | ||||||
|     <RuntimeIdentifiers>win-x64;osx-x64;linux-x64</RuntimeIdentifiers> |     <RuntimeIdentifiers>win-x64;osx-x64;linux-x64</RuntimeIdentifiers> | ||||||
|     <ApplicationIcon /> |     <ApplicationIcon/> | ||||||
|   </PropertyGroup> |   </PropertyGroup> | ||||||
|   <PropertyGroup> |   <PropertyGroup> | ||||||
|     <DefaultItemExcludes>$(DefaultItemExcludes);DllMap.cs</DefaultItemExcludes> |     <DefaultItemExcludes>$(DefaultItemExcludes);DllMap.cs</DefaultItemExcludes> | ||||||
|  | @ -28,13 +26,13 @@ | ||||||
|     </Content> |     </Content> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <ProjectReference Include="..\FNA\FNA.csproj" /> |     <ProjectReference Include="..\FNA\FNA.csproj"/> | ||||||
|     <ProjectReference Include="..\encompass-cs\encompass-cs\encompass-cs.csproj" /> |     <ProjectReference Include="..\encompass-cs\encompass-cs\encompass-cs.csproj" /> | ||||||
|     <ProjectReference Include="..\Kav\Kav.Framework.csproj" /> |     <ProjectReference Include="..\Kav\Kav.Framework.csproj" /> | ||||||
|     <ProjectReference Include="..\Smuggler\Smuggler.Framework.csproj" /> |     <ProjectReference Include="..\Smuggler\Smuggler.Framework.csproj" /> | ||||||
|     <ProjectReference Include="..\MoonTools.Curve\Curve\Curve.csproj" /> |     <ProjectReference Include="..\MoonTools.Curve\Curve\Curve.csproj" /> | ||||||
|     <ProjectReference Include="..\MoonTools.Bonk\Bonk\Bonk.csproj" /> |     <ProjectReference Include="..\MoonTools.Bonk\Bonk\Bonk.csproj" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <Import Project="..\build\CopyFNALibs.targets" /> |   <Import Project="..\build\CopyFNALibs.targets"/> | ||||||
|   <Import Sdk="Microsoft.NET.Sdk" Project="Sdk.targets" /> |   <Import Sdk="Microsoft.NET.Sdk" Project="Sdk.targets" /> | ||||||
| </Project> | </Project> | ||||||
|  |  | ||||||
|  | @ -16,7 +16,6 @@ namespace KavTest | ||||||
|     class KavTestGame : Game |     class KavTestGame : Game | ||||||
|     { |     { | ||||||
|         GraphicsDeviceManager graphics; |         GraphicsDeviceManager graphics; | ||||||
|         InstancedModelContainer InstancedModelContainer { get; } = new InstancedModelContainer(); |  | ||||||
| 
 | 
 | ||||||
|         WorldBuilder WorldBuilder { get; } = new WorldBuilder(); |         WorldBuilder WorldBuilder { get; } = new WorldBuilder(); | ||||||
|         World World { get; set; } |         World World { get; set; } | ||||||
|  | @ -24,8 +23,8 @@ namespace KavTest | ||||||
|         public KavTestGame() |         public KavTestGame() | ||||||
|         { |         { | ||||||
|             graphics = new GraphicsDeviceManager(this); |             graphics = new GraphicsDeviceManager(this); | ||||||
|             graphics.PreferredBackBufferWidth = 1600; |             graphics.PreferredBackBufferWidth = 1280; | ||||||
|             graphics.PreferredBackBufferHeight = 900; |             graphics.PreferredBackBufferHeight = 720; | ||||||
|             graphics.PreferMultiSampling = false; |             graphics.PreferMultiSampling = false; | ||||||
|             Content.RootDirectory = "Content"; |             Content.RootDirectory = "Content"; | ||||||
| 
 | 
 | ||||||
|  | @ -49,81 +48,6 @@ namespace KavTest | ||||||
|         { |         { | ||||||
|             base.Initialize(); |             base.Initialize(); | ||||||
| 
 | 
 | ||||||
|             var rustyBallModel = Kav.ModelLoader.Load( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 Smuggler.Importer.ImportGLB( |  | ||||||
|                     GraphicsDevice, |  | ||||||
|                     File.OpenRead("Content/rustysphere.glb") |  | ||||||
|                 ) |  | ||||||
|             ); |  | ||||||
|             rustyBallModel.DisableNormalMaps(); |  | ||||||
|             rustyBallModel.DisableAlbedoMaps(); |  | ||||||
|             rustyBallModel.DisableMetallicRoughnessMaps(); |  | ||||||
|             rustyBallModel.Albedo = Color.DeepSkyBlue; |  | ||||||
|             rustyBallModel.Metallic = 0.5f; |  | ||||||
|             rustyBallModel.Roughness = 0.284f; |  | ||||||
| 
 |  | ||||||
|             var lightBulbModel = Kav.ModelLoader.Load( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 Smuggler.Importer.ImportGLB(GraphicsDevice, File.OpenRead("Content/cube.glb")) |  | ||||||
|             ); |  | ||||||
| 
 |  | ||||||
|             var floorModel = Kav.ModelLoader.Load( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 Smuggler.Importer.ImportGLB(GraphicsDevice, File.OpenRead("Content/floor.glb")) |  | ||||||
|             ); |  | ||||||
|             floorModel.Metallic = 0f; |  | ||||||
|             floorModel.Roughness = 0f; |  | ||||||
| 
 |  | ||||||
|             var avocadoModel = Kav.ModelLoader.Load( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 Smuggler.Importer.ImportGLB(GraphicsDevice, File.OpenRead("Content/avocado.glb")) |  | ||||||
|             ); |  | ||||||
| 
 |  | ||||||
|             var redCylinderModel = Kav.ModelLoader.Load( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 Smuggler.Importer.ImportGLB( |  | ||||||
|                     GraphicsDevice, |  | ||||||
|                     File.OpenRead("Content/redcylinder.glb") |  | ||||||
|                 ) |  | ||||||
|             ); |  | ||||||
| 
 |  | ||||||
|             var pinkConeModel = Kav.ModelLoader.Load( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 Smuggler.Importer.ImportGLB( |  | ||||||
|                     GraphicsDevice, |  | ||||||
|                     File.OpenRead("Content/pinkcone.glb") |  | ||||||
|                 ) |  | ||||||
|             ); |  | ||||||
| 
 |  | ||||||
|             var blueTorusModel = Kav.ModelLoader.Load( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 Smuggler.Importer.ImportGLB( |  | ||||||
|                     GraphicsDevice, |  | ||||||
|                     File.OpenRead("Content/bluetorus.glb") |  | ||||||
|                 ) |  | ||||||
|             ); |  | ||||||
| 
 |  | ||||||
|             var cubeModel = Kav.ModelLoader.Load( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 Smuggler.Importer.ImportGLB( |  | ||||||
|                     GraphicsDevice, |  | ||||||
|                     File.OpenRead("Content/cube.glb") |  | ||||||
|                 ) |  | ||||||
|             ); |  | ||||||
| 
 |  | ||||||
|             var toonShadeRuinsModel = Kav.ModelLoader.Load( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 Smuggler.Importer.ImportGLB( |  | ||||||
|                     GraphicsDevice, |  | ||||||
|                     File.OpenRead("Content/ToonShadeRuins.glb") |  | ||||||
|                 ) |  | ||||||
|             ); |  | ||||||
| 
 |  | ||||||
|             InstancedModelContainer.CubeModel = cubeModel.Meshes[0].MeshParts[0]; |  | ||||||
|             InstancedModelContainer.CubeModel.Albedo = Color.Blue.ToVector3(); |  | ||||||
|             InstancedModelContainer.CubeModel.DisableAlbedoMap = true; |  | ||||||
| 
 |  | ||||||
|             Texture2D.TextureDataFromStreamEXT( |             Texture2D.TextureDataFromStreamEXT( | ||||||
|                 File.OpenRead("Content/Skybox/front.jpg"), |                 File.OpenRead("Content/Skybox/front.jpg"), | ||||||
|                 out var skyboxSize, |                 out var skyboxSize, | ||||||
|  | @ -174,141 +98,14 @@ namespace KavTest | ||||||
|             skybox.SetData(CubeMapFace.PositiveY, topPixels); |             skybox.SetData(CubeMapFace.PositiveY, topPixels); | ||||||
|             skybox.SetData(CubeMapFace.NegativeY, bottomPixels); |             skybox.SetData(CubeMapFace.NegativeY, bottomPixels); | ||||||
| 
 | 
 | ||||||
|             var mushroomGuyTexture = Texture2D.FromStream(GraphicsDevice, new FileStream("Content/Sprites/mushroomguy.png", FileMode.Open)); |  | ||||||
| 
 |  | ||||||
|             var mushroomGuyMeshSprite = new Kav.MeshSprite( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 mushroomGuyTexture, |  | ||||||
|                 Kav.SpriteBillboardConstraint.None |  | ||||||
|             ); |  | ||||||
| 
 |  | ||||||
|             WorldBuilder.AddEngine(new InputEngine(this)); |             WorldBuilder.AddEngine(new InputEngine(this)); | ||||||
|             WorldBuilder.AddEngine(new AngularVelocityEngine()); |             WorldBuilder.AddEngine(new AngularVelocityEngine()); | ||||||
|             WorldBuilder.AddEngine(new MoveAlongCurve3DEngine()); |             WorldBuilder.AddEngine(new MoveAlongCurve3DEngine()); | ||||||
|             WorldBuilder.AddEngine(new MotionEngine()); |             WorldBuilder.AddEngine(new MotionEngine()); | ||||||
|             WorldBuilder.AddEngine(new CameraEngine()); |             WorldBuilder.AddEngine(new CameraEngine()); | ||||||
|             WorldBuilder.AddEngine(new RustyBallSpawner(rustyBallModel)); |  | ||||||
|             WorldBuilder.AddEngine(new LightBulbSpawner(lightBulbModel)); |  | ||||||
|             WorldBuilder.AddEngine(new StaticModelSpawner()); |             WorldBuilder.AddEngine(new StaticModelSpawner()); | ||||||
|             WorldBuilder.AddEngine(new DirectionalLightSpawner()); |             WorldBuilder.AddEngine(new DirectionalLightSpawner()); | ||||||
|             WorldBuilder.AddEngine(new MeshSpriteSpawner()); |             WorldBuilder.AddGeneralRenderer(new SceneRenderer(GraphicsDevice), 0); | ||||||
|             WorldBuilder.AddGeneralRenderer(new SceneRenderer(GraphicsDevice, InstancedModelContainer), 0); |  | ||||||
| 
 |  | ||||||
|             // WorldBuilder.SendMessage(new RustyBallSpawnMessage( |  | ||||||
|             //     new Transform3D(new Vector3(0, 0, 0)), |  | ||||||
|             //     new Vector3(1, 1, -1) |  | ||||||
|             // )); |  | ||||||
| 
 |  | ||||||
|             // WorldBuilder.SendMessage(new RustyBallSpawnMessage( |  | ||||||
|             //     new Transform3D(new Vector3(-3, 0, 0)), |  | ||||||
|             //     new Vector3(-1, 1, -1) |  | ||||||
|             // )); |  | ||||||
| 
 |  | ||||||
|             // WorldBuilder.SendMessage(new RustyBallSpawnMessage( |  | ||||||
|             //     new Transform3D(new Vector3(3, 0, 0)), |  | ||||||
|             //     new Vector3(-1, 1, 1) |  | ||||||
|             // )); |  | ||||||
| 
 |  | ||||||
|             // WorldBuilder.SendMessage(new StaticModelSpawnMessage( |  | ||||||
|             //     new Transform3D(new Vector3(0, 1, 0), Quaternion.Identity, new Vector3(1f, 1f, 1f)), |  | ||||||
|             //     rustyBallModel |  | ||||||
|             // )); |  | ||||||
| 
 |  | ||||||
|             WorldBuilder.SendMessage(new StaticModelSpawnMessage( |  | ||||||
|                 new Transform3D( |  | ||||||
|                     new Vector3(0, -15, 0),  |  | ||||||
|                     Quaternion.Identity,  |  | ||||||
|                     new Vector3(100f, 1f, 100f) |  | ||||||
|                 ), |  | ||||||
|                 floorModel |  | ||||||
|             )); |  | ||||||
| 
 |  | ||||||
|             WorldBuilder.SendMessage(new StaticModelSpawnMessage( |  | ||||||
|                 new Transform3D( |  | ||||||
|                     new Vector3(0, 3, 0), |  | ||||||
|                     Quaternion.CreateFromAxisAngle( |  | ||||||
|                         Vector3.Right, |  | ||||||
|                         -Microsoft.Xna.Framework.MathHelper.PiOver2 |  | ||||||
|                     ), |  | ||||||
|                     new Vector3(1f, 1f, 1f) |  | ||||||
|                 ), |  | ||||||
|                 redCylinderModel |  | ||||||
|             )); |  | ||||||
| 
 |  | ||||||
|             WorldBuilder.SendMessage(new StaticModelSpawnMessage( |  | ||||||
|                 new Transform3D( |  | ||||||
|                     new Vector3(-3, 3, 0), |  | ||||||
|                     Quaternion.CreateFromAxisAngle( |  | ||||||
|                         Vector3.Right, |  | ||||||
|                         -Microsoft.Xna.Framework.MathHelper.PiOver2 |  | ||||||
|                     ), |  | ||||||
|                     new Vector3(1f, 1f, 1f) |  | ||||||
|                 ), |  | ||||||
|                 blueTorusModel |  | ||||||
|             )); |  | ||||||
| 
 |  | ||||||
|             for (int i = -10; i < 10; i++) |  | ||||||
|             { |  | ||||||
|                 for (int j = -10; j < 10; j++) |  | ||||||
|                 { |  | ||||||
|                     var entity = WorldBuilder.CreateEntity(); |  | ||||||
|                     WorldBuilder.SetComponent(entity, new Transform3DComponent( |  | ||||||
|                         new Transform3D( |  | ||||||
|                             new Vector3(i * 5, -1, j * 5) |  | ||||||
|                         ) |  | ||||||
|                     )); |  | ||||||
|                     WorldBuilder.SetComponent(entity, new InstancedCubeComponent()); |  | ||||||
|                     WorldBuilder.SetComponent(entity, new StaticComponent()); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             WorldBuilder.SendMessage(new MeshSpriteSpawnMessage( |  | ||||||
|                 new Transform3D(new Vector3(3, 0, 11), Quaternion.CreateFromAxisAngle(Vector3.Up, (float)System.Math.PI), Vector3.One), |  | ||||||
|                 mushroomGuyMeshSprite |  | ||||||
|             )); |  | ||||||
| 
 |  | ||||||
|             // WorldBuilder.SendMessage(new StaticModelSpawnMessage( |  | ||||||
|             //     Transform3D.Identity, |  | ||||||
|             //     toonShadeRuinsModel |  | ||||||
|             // )); |  | ||||||
| 
 |  | ||||||
|             // var lightEntity = WorldBuilder.CreateEntity(); |  | ||||||
|             // WorldBuilder.SetComponent( |  | ||||||
|             //     lightEntity, |  | ||||||
|             //     new Transform3DComponent( |  | ||||||
|             //         new Transform3D( |  | ||||||
|             //             new Vector3(0, 3, 3), |  | ||||||
|             //             Quaternion.Identity, |  | ||||||
|             //             new Vector3(0.1f, 0.1f, 0.1f) |  | ||||||
|             //         ) |  | ||||||
|             //     ) |  | ||||||
|             // ); |  | ||||||
|             // WorldBuilder.SetComponent( |  | ||||||
|             //     lightEntity, |  | ||||||
|             //     new PointLightComponent(Color.Blue, 1000f) |  | ||||||
|             // ); |  | ||||||
|             // WorldBuilder.SetComponent( |  | ||||||
|             //     lightEntity, |  | ||||||
|             //     new ModelComponent(cubeModel) |  | ||||||
|             // ); |  | ||||||
| 
 |  | ||||||
|             //for (var i = 0; i < 1; i++) |  | ||||||
|             //{ |  | ||||||
|             //    var start = new Vector3(-2, 5, 0); |  | ||||||
| 
 |  | ||||||
|             //    WorldBuilder.SendMessage(new LightBulbSpawnMessage( |  | ||||||
|             //        new Transform3D(start, Quaternion.Identity, new Vector3(0.1f, 0.1f, 0.1f)), |  | ||||||
|             //        RandomHelper.RandomColor(), |  | ||||||
|             //        50f, |  | ||||||
|             //        RandomHelper.RandomLoop(new System.Numerics.Vector3(-2, 5, 0), 2, 5, 3, 10) |  | ||||||
|             //    )); |  | ||||||
|             //} |  | ||||||
| 
 |  | ||||||
|             var ambientLightEntity = WorldBuilder.CreateEntity(); |  | ||||||
| 
 |  | ||||||
|             WorldBuilder.SetComponent(ambientLightEntity, new AmbientLightComponent( |  | ||||||
|                 new Color(0.4f, 0.4f, 0.4f) |  | ||||||
|             )); |  | ||||||
| 
 | 
 | ||||||
|             WorldBuilder.SendMessage(new DirectionalLightSpawnMessage( |             WorldBuilder.SendMessage(new DirectionalLightSpawnMessage( | ||||||
|                 //Quaternion.CreateFromAxisAngle(Vector3.Right, Microsoft.Xna.Framework.MathHelper.Pi / 3f), |                 //Quaternion.CreateFromAxisAngle(Vector3.Right, Microsoft.Xna.Framework.MathHelper.Pi / 3f), | ||||||
|  | @ -317,18 +114,6 @@ namespace KavTest | ||||||
|                 0.7f |                 0.7f | ||||||
|             )); |             )); | ||||||
| 
 | 
 | ||||||
|             // WorldBuilder.SendMessage(new DirectionalLightSpawnMessage( |  | ||||||
|             //     Quaternion.CreateFromAxisAngle(Vector3.Right, Microsoft.Xna.Framework.MathHelper.PiOver4), |  | ||||||
|             //     Color.GhostWhite, |  | ||||||
|             //     0.1f |  | ||||||
|             // )); |  | ||||||
| 
 |  | ||||||
|             // WorldBuilder.SendMessage(new DirectionalLightSpawnMessage( |  | ||||||
|             //     Quaternion.CreateFromAxisAngle(Vector3.Right, Microsoft.Xna.Framework.MathHelper.PiOver2 + Microsoft.Xna.Framework.MathHelper.PiOver4), |  | ||||||
|             //     Color.GhostWhite, |  | ||||||
|             //     0.1f |  | ||||||
|             // )); |  | ||||||
| 
 |  | ||||||
|             var cameraEntity = WorldBuilder.CreateEntity(); |             var cameraEntity = WorldBuilder.CreateEntity(); | ||||||
|             WorldBuilder.SetComponent(cameraEntity, new ArcballTransformComponent( |             WorldBuilder.SetComponent(cameraEntity, new ArcballTransformComponent( | ||||||
|                 new ArcballTransform( |                 new ArcballTransform( | ||||||
|  |  | ||||||
|  | @ -1,19 +0,0 @@ | ||||||
| using Encompass; |  | ||||||
| using Kav; |  | ||||||
| 
 |  | ||||||
| namespace KavTest.Messages |  | ||||||
| { |  | ||||||
|     public struct MeshSpriteSpawnMessage : IMessage |  | ||||||
|     { |  | ||||||
|         public Transform3D Transform { get; } |  | ||||||
|         public MeshSprite MeshSprite { get; } |  | ||||||
| 
 |  | ||||||
|         public MeshSpriteSpawnMessage( |  | ||||||
|             Transform3D transform, |  | ||||||
|             MeshSprite meshSprite |  | ||||||
|         ) { |  | ||||||
|             Transform = transform; |  | ||||||
|             MeshSprite = meshSprite; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,11 +0,0 @@ | ||||||
| { |  | ||||||
|   "profiles": { |  | ||||||
|     "KavTest.Framework": { |  | ||||||
|       "commandName": "Project", |  | ||||||
|       "environmentVariables": { |  | ||||||
|         "FNA3D_FORCE_DRIVER": "Vulkan" |  | ||||||
|       }, |  | ||||||
|       "nativeDebugging": true |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  | @ -11,43 +11,9 @@ namespace KavTest.Renderers | ||||||
| { | { | ||||||
|     public class SceneRenderer : GeneralRenderer |     public class SceneRenderer : GeneralRenderer | ||||||
|     { |     { | ||||||
|         private GraphicsDevice GraphicsDevice { get; } |  | ||||||
|         private SpriteBatch SpriteBatch { get; } |  | ||||||
|         private InstancedModelContainer InstancedModelContainer { get; } |  | ||||||
| 
 |  | ||||||
|         private Kav.Renderer Renderer { get; } |         private Kav.Renderer Renderer { get; } | ||||||
| 
 | 
 | ||||||
|         private RenderTargetBinding[] GBuffer { get; } |         private IEnumerable<(Kav.Model, Matrix)> ModelTransforms | ||||||
| 
 |  | ||||||
|         private RenderTarget2D GPosition { get; } |  | ||||||
|         private RenderTarget2D GNormal { get; } |  | ||||||
|         private RenderTarget2D GAlbedo { get; } |  | ||||||
|         private RenderTarget2D GMetallicRoughness { get; } |  | ||||||
| 
 |  | ||||||
|         private RenderTarget2D DeferredTarget { get; } |  | ||||||
|         private RenderTarget2D BillboardTarget { get; } |  | ||||||
|         private RenderTargetCube ShadowCubeMap { get; } |  | ||||||
|         private DirectionalShadowMapData DirectionalShadowMapData { get; } |  | ||||||
| 
 |  | ||||||
|         private readonly Dictionary<Kav.MeshPart, List<Matrix>> InstanceMap = new Dictionary<MeshPart, List<Matrix>>(); |  | ||||||
| 
 |  | ||||||
|         private IEnumerable<Matrix> CubeTransforms |  | ||||||
|         { |  | ||||||
|             get |  | ||||||
|             { |  | ||||||
|                 foreach (var entity in ReadEntitiesAsEnumerable<InstancedCubeComponent>()) |  | ||||||
|                 { |  | ||||||
|                     if (HasComponent<Transform3DComponent>(entity)) |  | ||||||
|                     { |  | ||||||
|                         var transformComponent = GetComponent<Transform3DComponent>(entity); |  | ||||||
| 
 |  | ||||||
|                         yield return transformComponent.Transform.TransformMatrix; |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         private IEnumerable<(Kav.MeshPart, Matrix)> MeshPartTransforms |  | ||||||
|         { |         { | ||||||
|             get |             get | ||||||
|             { |             { | ||||||
|  | @ -56,22 +22,20 @@ namespace KavTest.Renderers | ||||||
|                     /* FIXME: this transformation should definitely not go here */ |                     /* FIXME: this transformation should definitely not go here */ | ||||||
|                     var transformComponent = GetComponent<Transform3DComponent>(entity); |                     var transformComponent = GetComponent<Transform3DComponent>(entity); | ||||||
|                     var modelComponent = GetComponent<ModelComponent>(entity); |                     var modelComponent = GetComponent<ModelComponent>(entity); | ||||||
|  |                     if (HasComponent<OverrideAlbedoComponent>(entity)) | ||||||
|  |                     { | ||||||
|  |                         var overrideAlbedoComponent = GetComponent<OverrideAlbedoComponent>(entity); | ||||||
| 
 | 
 | ||||||
|                         foreach (var mesh in modelComponent.Model.Meshes) |                         foreach (var mesh in modelComponent.Model.Meshes) | ||||||
|                         { |                         { | ||||||
|                             foreach (var meshPart in mesh.MeshParts) |                             foreach (var meshPart in mesh.MeshParts) | ||||||
|                             { |                             { | ||||||
|                             if (HasComponent<OverrideAlbedoComponent>(entity)) |  | ||||||
|                             { |  | ||||||
|                                 var overrideAlbedoComponent = GetComponent<OverrideAlbedoComponent>(entity); |  | ||||||
| 
 |  | ||||||
|                                 meshPart.DisableAlbedoMap = true; |                                 meshPart.DisableAlbedoMap = true; | ||||||
|                                 meshPart.Albedo = overrideAlbedoComponent.Color; |                                 meshPart.Albedo = overrideAlbedoComponent.Color; | ||||||
|                             } |                             } | ||||||
| 
 |  | ||||||
|                             yield return (meshPart, transformComponent.Transform.TransformMatrix); |  | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|  |                     yield return (modelComponent.Model, transformComponent.Transform.TransformMatrix); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  | @ -109,9 +73,7 @@ namespace KavTest.Renderers | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         private Kav.DirectionalLight? DirectionalLight() |         private Kav.DirectionalLight DirectionalLight() | ||||||
|         { |  | ||||||
|             if (SomeComponent<DirectionalLightComponent>()) |  | ||||||
|         { |         { | ||||||
|             var entity = ReadEntity<DirectionalLightComponent>(); |             var entity = ReadEntity<DirectionalLightComponent>(); | ||||||
|             var transformComponent = GetComponent<Transform3DComponent>(entity); |             var transformComponent = GetComponent<Transform3DComponent>(entity); | ||||||
|  | @ -123,116 +85,16 @@ namespace KavTest.Renderers | ||||||
|                 directionalLightComponent.Intensity |                 directionalLightComponent.Intensity | ||||||
|             ); |             ); | ||||||
|         } |         } | ||||||
|             else | 
 | ||||||
|  |         public SceneRenderer(GraphicsDevice graphicsDevice) | ||||||
|         { |         { | ||||||
|                 return null; |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         private IEnumerable<(MeshSprite, Matrix)> MeshSpriteTransforms() |  | ||||||
|         { |  | ||||||
|             foreach (var entity in ReadEntitiesAsEnumerable<MeshSpriteComponent>()) |  | ||||||
|             { |  | ||||||
|                 var transformComponent = GetComponent<Transform3DComponent>(entity); |  | ||||||
|                 var spriteComponent = GetComponent<MeshSpriteComponent>(entity); |  | ||||||
| 
 |  | ||||||
|                 yield return (spriteComponent.MeshSprite, transformComponent.Transform.TransformMatrix); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public SceneRenderer( |  | ||||||
|             GraphicsDevice graphicsDevice, |  | ||||||
|             InstancedModelContainer instancedModelContainer |  | ||||||
|         ) { |  | ||||||
|             GraphicsDevice = graphicsDevice; |  | ||||||
|             InstancedModelContainer = instancedModelContainer; |  | ||||||
| 
 |  | ||||||
|             var renderDimensionsX = GraphicsDevice.PresentationParameters.BackBufferWidth; |  | ||||||
|             var renderDimensionsY = GraphicsDevice.PresentationParameters.BackBufferHeight; |  | ||||||
| 
 |  | ||||||
|             Renderer = new Kav.Renderer( |             Renderer = new Kav.Renderer( | ||||||
|                 GraphicsDevice |  | ||||||
|             ); |  | ||||||
| 
 |  | ||||||
|             DeferredTarget = new RenderTarget2D( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 renderDimensionsX, |  | ||||||
|                 renderDimensionsY, |  | ||||||
|                 false, |  | ||||||
|                 SurfaceFormat.Color, |  | ||||||
|                 DepthFormat.Depth24Stencil8, |  | ||||||
|                 0, |  | ||||||
|                 RenderTargetUsage.PreserveContents |  | ||||||
|             ); |  | ||||||
| 
 |  | ||||||
|             BillboardTarget = new RenderTarget2D( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 renderDimensionsX, |  | ||||||
|                 renderDimensionsY, |  | ||||||
|                 false, |  | ||||||
|                 SurfaceFormat.Color, |  | ||||||
|                 DepthFormat.Depth24Stencil8, |  | ||||||
|                 0, |  | ||||||
|                 RenderTargetUsage.PreserveContents |  | ||||||
|             ); |  | ||||||
| 
 |  | ||||||
|             GPosition = new RenderTarget2D( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 renderDimensionsX, |  | ||||||
|                 renderDimensionsY, |  | ||||||
|                 false, |  | ||||||
|                 SurfaceFormat.Vector4, |  | ||||||
|                 DepthFormat.Depth24, |  | ||||||
|                 0, |  | ||||||
|                 RenderTargetUsage.PreserveContents |  | ||||||
|             ); |  | ||||||
| 
 |  | ||||||
|             GNormal = new RenderTarget2D( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 renderDimensionsX, |  | ||||||
|                 renderDimensionsY, |  | ||||||
|                 false, |  | ||||||
|                 SurfaceFormat.Vector4, |  | ||||||
|                 DepthFormat.None |  | ||||||
|             ); |  | ||||||
| 
 |  | ||||||
|             GAlbedo = new RenderTarget2D( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 renderDimensionsX, |  | ||||||
|                 renderDimensionsY, |  | ||||||
|                 false, |  | ||||||
|                 SurfaceFormat.Color, |  | ||||||
|                 DepthFormat.None |  | ||||||
|             ); |  | ||||||
| 
 |  | ||||||
|             GMetallicRoughness = new RenderTarget2D( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 renderDimensionsX, |  | ||||||
|                 renderDimensionsY, |  | ||||||
|                 false, |  | ||||||
|                 SurfaceFormat.HalfVector2, |  | ||||||
|                 DepthFormat.None |  | ||||||
|             ); |  | ||||||
| 
 |  | ||||||
|             GBuffer = new RenderTargetBinding[4] { |  | ||||||
|                 new RenderTargetBinding(GPosition), |  | ||||||
|                 new RenderTargetBinding(GNormal), |  | ||||||
|                 new RenderTargetBinding(GAlbedo), |  | ||||||
|                 new RenderTargetBinding(GMetallicRoughness) |  | ||||||
|             }; |  | ||||||
| 
 |  | ||||||
|             ShadowCubeMap = Kav.Renderer.CreateShadowCubeMap( |  | ||||||
|                 GraphicsDevice, |  | ||||||
|                 2048 |  | ||||||
|             ); |  | ||||||
| 
 |  | ||||||
|             DirectionalShadowMapData = Kav.Renderer.CreateDirectionalShadowMaps( |  | ||||||
|                 graphicsDevice,  |                 graphicsDevice,  | ||||||
|                 2048, |                 graphicsDevice.PresentationParameters.BackBufferWidth,  | ||||||
|                 4 |                 graphicsDevice.PresentationParameters.BackBufferHeight, | ||||||
|  |                 4, | ||||||
|  |                 4096 | ||||||
|             ); |             ); | ||||||
| 
 |  | ||||||
|             SpriteBatch = new SpriteBatch(GraphicsDevice); |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public override void Render() |         public override void Render() | ||||||
|  | @ -253,156 +115,45 @@ namespace KavTest.Renderers | ||||||
|                     cameraComponent.FarPlane |                     cameraComponent.FarPlane | ||||||
|                 ); |                 ); | ||||||
| 
 | 
 | ||||||
|                 GraphicsDevice.SetRenderTargets(GBuffer); |                 // if (SomeComponent<DirectionalLightComponent>()) | ||||||
|                 GraphicsDevice.Clear(ClearOptions.Target | ClearOptions.DepthBuffer, Color.Black, 1f, 0); |                 // { | ||||||
|  |                 //     ref readonly var directionalLightEntity = ref ReadEntity<DirectionalLightComponent>(); | ||||||
|  |                 //     ref readonly var directionalLightTransformComponent = ref GetComponent<Transform3DComponent>(directionalLightEntity); | ||||||
|  |                 //     ref readonly var directionalLightComponent = ref GetComponent<DirectionalLightComponent>(directionalLightEntity); | ||||||
| 
 | 
 | ||||||
|                 GraphicsDevice.SetRenderTarget(DeferredTarget); |                 //     Renderer.DepthRender( | ||||||
|                 GraphicsDevice.Clear(ClearOptions.Target | ClearOptions.DepthBuffer, Color.Black, 1f, 0); |                 //         ModelTransforms, | ||||||
|                 GraphicsDevice.DepthStencilState = DepthStencilState.Default; |                 //         new Kav.DirectionalLight( | ||||||
|  |                 //             directionalLightTransformComponent.Transform.Forward, | ||||||
|  |                 //             directionalLightComponent.Color, | ||||||
|  |                 //             directionalLightComponent.Intensity | ||||||
|  |                 //         ) | ||||||
|  |                 //     ); | ||||||
|  |                 // } | ||||||
| 
 | 
 | ||||||
|                 Renderer.RenderGBufferInstanced( |                 // Renderer.DeferredRender( | ||||||
|                     GBuffer, |                 //     camera, | ||||||
|                     DeferredTarget, |                 //     ModelTransforms, | ||||||
|                     camera, |                 //     AmbientLight, | ||||||
|                     InstancedModelContainer.CubeModel, |                 //     PointLights, | ||||||
|                     CubeTransforms |                 //     DirectionalLight() | ||||||
|                 ); |                 // ); | ||||||
| 
 | 
 | ||||||
|                 Renderer.RenderGBufferIndexed( |                 Renderer.DeferredToonRender( | ||||||
|                     GBuffer, |  | ||||||
|                     camera, |  | ||||||
|                     MeshPartTransforms |  | ||||||
|                 ); |  | ||||||
| 
 |  | ||||||
|                 Renderer.RenderDepthIndexed( |  | ||||||
|                     DeferredTarget, |  | ||||||
|                     camera, |  | ||||||
|                     MeshPartTransforms |  | ||||||
|                 ); |  | ||||||
| 
 |  | ||||||
|                 Renderer.RenderAmbientLight( |  | ||||||
|                     DeferredTarget, |  | ||||||
|                     GPosition, |  | ||||||
|                     GAlbedo, |  | ||||||
|                     AmbientLight |  | ||||||
|                 ); |  | ||||||
| 
 |  | ||||||
|                 foreach (var pointLight in PointLights) |  | ||||||
|                 { |  | ||||||
|                     foreach (CubeMapFace face in Enum.GetValues(typeof(CubeMapFace))) |  | ||||||
|                     { |  | ||||||
|                         GraphicsDevice.SetRenderTarget(ShadowCubeMap, face); |  | ||||||
|                         GraphicsDevice.Clear(Color.White); |  | ||||||
|                     } |  | ||||||
| 
 |  | ||||||
|                     Renderer.RenderPointShadowMapIndexed( |  | ||||||
|                         ShadowCubeMap, |  | ||||||
|                         camera, |  | ||||||
|                         MeshPartTransforms, |  | ||||||
|                         pointLight |  | ||||||
|                     ); |  | ||||||
| 
 |  | ||||||
|                     Renderer.RenderPointLight( |  | ||||||
|                         DeferredTarget, |  | ||||||
|                         GPosition, |  | ||||||
|                         GAlbedo, |  | ||||||
|                         GNormal, |  | ||||||
|                         GMetallicRoughness, |  | ||||||
|                         ShadowCubeMap, |  | ||||||
|                         camera, |  | ||||||
|                         pointLight |  | ||||||
|                     ); |  | ||||||
|                 } |  | ||||||
| 
 |  | ||||||
|                 var directionalLight = DirectionalLight(); |  | ||||||
| 
 |  | ||||||
|                 if (directionalLight.HasValue) |  | ||||||
|                 { |  | ||||||
|                     DirectionalShadowMapData.Clear(GraphicsDevice); |  | ||||||
| 
 |  | ||||||
|                     Renderer.PrepareDirectionalShadowData( |  | ||||||
|                         DirectionalShadowMapData, |  | ||||||
|                         camera, |  | ||||||
|                         directionalLight.Value |  | ||||||
|                     ); |  | ||||||
| 
 |  | ||||||
|                     Renderer.RenderDirectionalShadowsIndexed( |  | ||||||
|                         DirectionalShadowMapData, |  | ||||||
|                         MeshPartTransforms |  | ||||||
|                     ); |  | ||||||
| 
 |  | ||||||
|                     Renderer.RenderDirectionalShadowsInstanced( |  | ||||||
|                         DirectionalShadowMapData, |  | ||||||
|                         InstancedModelContainer.CubeModel, |  | ||||||
|                         CubeTransforms |  | ||||||
|                     ); |  | ||||||
| 
 |  | ||||||
|                     Renderer.RenderDirectionalLight( |  | ||||||
|                         DeferredTarget, |  | ||||||
|                         GPosition, |  | ||||||
|                         GAlbedo, |  | ||||||
|                         GNormal, |  | ||||||
|                         GMetallicRoughness, |  | ||||||
|                         DirectionalShadowMapData, |  | ||||||
|                         camera, |  | ||||||
|                         directionalLight.Value |  | ||||||
|                     ); |  | ||||||
|                 } |  | ||||||
| 
 |  | ||||||
|                 Renderer.RenderSkybox( |  | ||||||
|                     DeferredTarget, |  | ||||||
|                     camera, |                     camera, | ||||||
|  |                     ModelTransforms, | ||||||
|  |                     AmbientLight, | ||||||
|  |                     DirectionalLight(), | ||||||
|                     ReadComponent<SkyboxComponent>().Skybox |                     ReadComponent<SkyboxComponent>().Skybox | ||||||
|                 ); |                 ); | ||||||
| 
 | 
 | ||||||
|                 Renderer.MeshSpriteRender( |                 // foreach (var directionalLight in DirectionalLights) | ||||||
|                     DeferredTarget, |                 // { | ||||||
|                     camera, |                 //     Renderer.DepthRender( | ||||||
|                     MeshSpriteTransforms(), |                 //         ModelTransforms, | ||||||
|                     AmbientLight, |                 //         directionalLight | ||||||
|                     PointLights, |                 //     ); | ||||||
|                     DirectionalLight() |                 // } | ||||||
|                 ); |  | ||||||
| 
 |  | ||||||
|                 GraphicsDevice.SetRenderTarget(null); |  | ||||||
|                 SpriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, null, null, null); |  | ||||||
|                 SpriteBatch.Draw(DeferredTarget, Vector2.Zero, Color.White); |  | ||||||
|                 //SpriteBatch.Draw(BillboardTarget, Vector2.Zero, Color.White); |  | ||||||
|                 SpriteBatch.End(); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         private void CollectInstances() |  | ||||||
|         { |  | ||||||
|             foreach (var list in InstanceMap.Values) |  | ||||||
|             { |  | ||||||
|                 list.Clear(); |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             foreach (var modelEntity in ReadEntities<ModelComponent>()) |  | ||||||
|             { |  | ||||||
|                 if (HasComponent<Transform3DComponent>(modelEntity)) |  | ||||||
|                 { |  | ||||||
|                     var modelComponent = GetComponent<ModelComponent>(modelEntity); |  | ||||||
|                     if (modelComponent.Instanced) |  | ||||||
|                     { |  | ||||||
|                         var transformComponent = GetComponent<Transform3DComponent>(modelEntity); |  | ||||||
| 
 |  | ||||||
|                         foreach (var mesh in modelComponent.Model.Meshes) |  | ||||||
|                         { |  | ||||||
|                             foreach (var meshPart in mesh.MeshParts) |  | ||||||
|                             { |  | ||||||
|                                 if (!InstanceMap.ContainsKey(meshPart)) |  | ||||||
|                                 { |  | ||||||
|                                     InstanceMap.Add(meshPart, new List<Matrix>()); |  | ||||||
|                                 } |  | ||||||
|                                 else |  | ||||||
| 
 |  | ||||||
|                                 InstanceMap[meshPart].Add(transformComponent.Transform.TransformMatrix); |  | ||||||
|                             } |  | ||||||
|                         } |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -1 +1 @@ | ||||||
| Subproject commit 094cf4b3d2cc5197cc8e0719f0dd368d50afe00e | Subproject commit 2f341aaeae07d2cb9b8f9be0ff5688543dcd582b | ||||||
|  | @ -1 +1 @@ | ||||||
| Subproject commit f1120a2572a7aa16b859da81bd6a4a5e7a8ea19b | Subproject commit 1a14f2595ad83dae3d6a715506bf2f735168416c | ||||||
							
								
								
									
										2
									
								
								Smuggler
								
								
								
								
							
							
								
								
								
								
								
								
							
						
						
									
										2
									
								
								Smuggler
								
								
								
								
							|  | @ -1 +1 @@ | ||||||
| Subproject commit ae6794e71bab538cc82e75f77ab0ed07a993320a | Subproject commit 4c78ed3d392af9d5c004ad1f6f133d94f1bd36d9 | ||||||
|  | @ -1 +1 @@ | ||||||
| Subproject commit 4538c0f3c9bbff1f17633eff897b61998e5fec3d | Subproject commit bdd9f595493609444d8ebb31b9d07b7ef320eafb | ||||||
		Loading…
	
		Reference in New Issue