Compare commits
3 Commits
main
...
skybox_exa
Author | SHA1 | Date |
---|---|---|
cosmonaut | 72d960806a | |
cosmonaut | a654a5f9a3 | |
cosmonaut | 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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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