Added debug-only logging macros #208
|
@ -0,0 +1,5 @@
|
|||
root = true
|
||||
|
||||
[*.{c,cpp,h,hpp}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
name: Bug report
|
||||
about: Report a bug that should be fixed
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
name: Feature request
|
||||
about: Suggest a feature for the project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
|
@ -31,6 +31,7 @@ x86/
|
|||
bld/
|
||||
[Bb]in/
|
||||
[Bb]in-int/
|
||||
[Bb]in_int/
|
||||
[Oo]bj/
|
||||
[Ll]og/
|
||||
[Ll]ogs/
|
||||
|
@ -353,4 +354,13 @@ MigrationBackup/
|
|||
# Ionide (cross platform F# VS Code tools) working folder
|
||||
.ionide/
|
||||
|
||||
# Generated Files
|
||||
[Dd]ependencies/
|
||||
*.vcxproj
|
||||
*.vcxproj.filters
|
||||
*.sln
|
||||
*.csproj
|
||||
|
||||
*.filters
|
||||
|
||||
Assets/Editor/Layouts/UserLayout.ini
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
Start in Fullscreen: false
|
||||
Starting Scene ID: 94283040
|
||||
Window Size: {x: 1920, y: 1080}
|
||||
Window Title: SHADE Engine
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,121 @@
|
|||
[Window][MainStatusBar]
|
||||
Pos=0,1007
|
||||
Size=1920,20
|
||||
Collapsed=0
|
||||
|
||||
[Window][SHEditorMenuBar]
|
||||
Pos=0,48
|
||||
Size=1920,959
|
||||
Collapsed=0
|
||||
|
||||
[Window][Hierarchy Panel]
|
||||
Pos=0,189
|
||||
Size=308,818
|
||||
Collapsed=0
|
||||
DockId=0x00000004,0
|
||||
|
||||
[Window][Debug##Default]
|
||||
Pos=60,60
|
||||
Size=400,400
|
||||
Collapsed=0
|
||||
|
||||
[Window][Inspector]
|
||||
Pos=1528,48
|
||||
Size=392,959
|
||||
Collapsed=0
|
||||
DockId=0x00000006,0
|
||||
|
||||
[Window][Profiler]
|
||||
Pos=0,48
|
||||
Size=308,139
|
||||
Collapsed=0
|
||||
DockId=0x00000003,0
|
||||
|
||||
[Window][Viewport]
|
||||
Pos=227,48
|
||||
Size=1457,1012
|
||||
Collapsed=0
|
||||
DockId=0x0000000B,0
|
||||
|
||||
[Window][ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌð‡Žoû]
|
||||
Pos=60,60
|
||||
Size=32,64
|
||||
Collapsed=0
|
||||
|
||||
[Window][ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ]
|
||||
Pos=60,60
|
||||
Size=999,581
|
||||
Collapsed=0
|
||||
|
||||
[Window][ð‡–oû]
|
||||
Pos=60,60
|
||||
Size=32,64
|
||||
Collapsed=0
|
||||
|
||||
[Window][ÌÌÌÌ]
|
||||
Pos=60,60
|
||||
Size=553,422
|
||||
Collapsed=0
|
||||
|
||||
[Window][]
|
||||
Pos=60,60
|
||||
Size=770,394
|
||||
Collapsed=0
|
||||
|
||||
[Window][ Viewport]
|
||||
Pos=227,48
|
||||
Size=1457,1012
|
||||
Collapsed=0
|
||||
DockId=0x0000000B,0
|
||||
|
||||
[Window][ Viewport]
|
||||
Pos=227,48
|
||||
Size=1457,1012
|
||||
Collapsed=0
|
||||
DockId=0x0000000B,0
|
||||
|
||||
[Window][î<>‹ Viewport]
|
||||
Pos=310,48
|
||||
Size=1216,662
|
||||
Collapsed=0
|
||||
DockId=0x0000000B,0
|
||||
|
||||
[Window][V]
|
||||
Pos=310,722
|
||||
Size=1501,338
|
||||
Collapsed=0
|
||||
DockId=0x00000008,0
|
||||
|
||||
[Window][p›£€Ê]
|
||||
Pos=310,750
|
||||
Size=1501,310
|
||||
Collapsed=0
|
||||
DockId=0x0000000A,0
|
||||
|
||||
[Window][ Asset Browser]
|
||||
Pos=310,712
|
||||
Size=1216,295
|
||||
Collapsed=0
|
||||
DockId=0x0000000C,0
|
||||
|
||||
[Window][Material Inspector]
|
||||
Pos=1528,48
|
||||
Size=392,959
|
||||
Collapsed=0
|
||||
DockId=0x00000006,1
|
||||
|
||||
[Docking][Data]
|
||||
DockSpace ID=0xC5C9B8AB Window=0xBE4044E9 Pos=0,71 Size=1920,959 Split=X
|
||||
DockNode ID=0x00000005 Parent=0xC5C9B8AB SizeRef=1526,1036 Split=X
|
||||
DockNode ID=0x00000001 Parent=0x00000005 SizeRef=308,1036 Split=Y Selected=0x1E6EB881
|
||||
DockNode ID=0x00000003 Parent=0x00000001 SizeRef=225,147 Selected=0x1E6EB881
|
||||
DockNode ID=0x00000004 Parent=0x00000001 SizeRef=225,863 Selected=0xE096E5AE
|
||||
DockNode ID=0x00000002 Parent=0x00000005 SizeRef=1216,1036 Split=Y Selected=0xB41284E7
|
||||
DockNode ID=0x00000007 Parent=0x00000002 SizeRef=1501,672 Split=Y Selected=0xB41284E7
|
||||
DockNode ID=0x00000009 Parent=0x00000007 SizeRef=1501,700 Split=Y Selected=0xB41284E7
|
||||
DockNode ID=0x0000000B Parent=0x00000009 SizeRef=1501,715 CentralNode=1 Selected=0xB41284E7
|
||||
DockNode ID=0x0000000C Parent=0x00000009 SizeRef=1501,295 Selected=0xB128252A
|
||||
DockNode ID=0x0000000A Parent=0x00000007 SizeRef=1501,310 Selected=0xD446F7B6
|
||||
DockNode ID=0x00000008 Parent=0x00000002 SizeRef=1501,338 Selected=0xD9F31532
|
||||
DockNode ID=0x00000006 Parent=0xC5C9B8AB SizeRef=392,1036 Selected=0xD3697FB6
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
- VertexShader: 39210065
|
||||
FragmentShader: 46377769
|
||||
SubPass: G-Buffer Write
|
||||
Properties:
|
||||
data.color: {x: 1, y: 1, z: 1, w: 1}
|
||||
data.textureIndex: 58303057
|
||||
data.alpha: 0
|
||||
data.beta: {x: 1, y: 1, z: 1}
|
|
@ -0,0 +1,3 @@
|
|||
Name: BagMaterial
|
||||
ID: 123745521
|
||||
Type: 7
|
|
@ -0,0 +1,8 @@
|
|||
- VertexShader: 39210065
|
||||
FragmentShader: 46377769
|
||||
SubPass: G-Buffer Write
|
||||
Properties:
|
||||
data.color: {x: 1, y: 1, z: 1, w: 1}
|
||||
data.textureIndex: 64651793
|
||||
data.alpha: 0
|
||||
data.beta: {x: 1, y: 1, z: 1}
|
|
@ -0,0 +1,3 @@
|
|||
Name: TestMat
|
||||
ID: 126974645
|
||||
Type: 7
|
|
@ -0,0 +1,8 @@
|
|||
- VertexShader: 39210065
|
||||
FragmentShader: 46377769
|
||||
SubPass: G-Buffer Write
|
||||
Properties:
|
||||
data.color: {x: 1, y: 1, z: 1, w: 1}
|
||||
data.textureIndex: 0
|
||||
data.alpha: 0
|
||||
data.beta: {x: 1, y: 1, z: 1}
|
|
@ -0,0 +1,3 @@
|
|||
Name: WhiteMat
|
||||
ID: 124370424
|
||||
Type: 7
|
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -0,0 +1,55 @@
|
|||
Name: HouseModular
|
||||
ID: 75328301
|
||||
Type: 4
|
||||
Sub Assets:
|
||||
Name: FloorLarge
|
||||
ID: 142812576
|
||||
Type: 8
|
||||
Name: FloorSmall
|
||||
ID: 139921228
|
||||
Type: 8
|
||||
Name: FloorLong
|
||||
ID: 136991843
|
||||
Type: 8
|
||||
Name: Pillar
|
||||
ID: 150352316
|
||||
Type: 8
|
||||
Name: WallEnd
|
||||
ID: 139594893
|
||||
Type: 8
|
||||
Name: WallCorner
|
||||
ID: 134714737
|
||||
Type: 8
|
||||
Name: WallDefault
|
||||
ID: 140834166
|
||||
Type: 8
|
||||
Name: WallLarge
|
||||
ID: 142689599
|
||||
Type: 8
|
||||
Name: WallDiagonal
|
||||
ID: 144002377
|
||||
Type: 8
|
||||
Name: WallTBlock
|
||||
ID: 149359798
|
||||
Type: 8
|
||||
Name: WindowLarge
|
||||
ID: 148351779
|
||||
Type: 8
|
||||
Name: WindowSmallOpened
|
||||
ID: 149786048
|
||||
Type: 8
|
||||
Name: WindowSmallClosed
|
||||
ID: 147863396
|
||||
Type: 8
|
||||
Name: WindowLargeOpen
|
||||
ID: 138781993
|
||||
Type: 8
|
||||
Name: WallDoorHole
|
||||
ID: 150924328
|
||||
Type: 8
|
||||
Name: Door
|
||||
ID: 147152385
|
||||
Type: 8
|
||||
Name: DoorFrame
|
||||
ID: 146862321
|
||||
Type: 8
|
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -0,0 +1,10 @@
|
|||
Name: racoon
|
||||
ID: 77816045
|
||||
Type: 4
|
||||
Sub Assets:
|
||||
Name: Bag
|
||||
ID: 144838771
|
||||
Type: 8
|
||||
Name: Raccoon
|
||||
ID: 149697411
|
||||
Type: 8
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: RaccoonBag_Color_Ver4
|
||||
ID: 58303057
|
||||
Type: 3
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: RaccoonPreTexturedVer1_Base9
|
||||
ID: 64651793
|
||||
Type: 3
|
|
@ -0,0 +1,226 @@
|
|||
- EID: 0
|
||||
Name: Camera
|
||||
IsActive: true
|
||||
NumberOfChildren: 0
|
||||
Components:
|
||||
Camera Component:
|
||||
Position: {x: 0, y: 0, z: 8}
|
||||
Pitch: 0
|
||||
Yaw: 0
|
||||
Roll: 0
|
||||
Width: 1920
|
||||
Height: 1080
|
||||
Near: 0.00999999978
|
||||
Far: 10000
|
||||
Perspective: true
|
||||
Light Component:
|
||||
Position: {x: 0, y: 0, z: 0}
|
||||
Type: Directional
|
||||
Direction: {x: 1.79999995, y: 0, z: 1}
|
||||
Color: {x: 0.951541841, y: 0.921719015, z: 0.553319454, w: 1}
|
||||
Layer: 4294967295
|
||||
Strength: 0
|
||||
Scripts: ~
|
||||
- EID: 1
|
||||
Name: Floor
|
||||
IsActive: true
|
||||
NumberOfChildren: 0
|
||||
Components:
|
||||
Transform Component:
|
||||
Translate: {x: -1.440328, y: -4.41369677, z: -5}
|
||||
Rotate: {x: -0, y: 0, z: -0}
|
||||
Scale: {x: 49.4798889, y: 0.5, z: 17.5}
|
||||
Renderable Component:
|
||||
Mesh: 149697411
|
||||
Material: 126974645
|
||||
RigidBody Component:
|
||||
Type: Static
|
||||
Mass: 1
|
||||
Drag: 0.00999999978
|
||||
Angular Drag: 0.00999999978
|
||||
Use Gravity: true
|
||||
Interpolate: true
|
||||
Freeze Position X: false
|
||||
Freeze Position Y: false
|
||||
Freeze Position Z: false
|
||||
Freeze Rotation X: false
|
||||
Freeze Rotation Y: false
|
||||
Freeze Rotation Z: false
|
||||
Collider Component:
|
||||
Colliders:
|
||||
- Is Trigger: false
|
||||
Type: Box
|
||||
Half Extents: {x: 1, y: 1, z: 1}
|
||||
Friction: 0.400000006
|
||||
Bounciness: 0
|
||||
Density: 1
|
||||
Position Offset: {x: 0, y: 0, z: 0}
|
||||
Scripts: ~
|
||||
- EID: 10
|
||||
Name: Default
|
||||
IsActive: true
|
||||
NumberOfChildren: 0
|
||||
Components:
|
||||
Transform Component:
|
||||
Translate: {x: -4.40482807, y: 2.57871056, z: -5.21213436}
|
||||
Rotate: {x: -0.361265004, y: 1.11661232, z: -0.626627684}
|
||||
Scale: {x: 0.999982238, y: 0.999987125, z: 0.999981165}
|
||||
RigidBody Component:
|
||||
Type: Dynamic
|
||||
Mass: 1
|
||||
Drag: 0
|
||||
Angular Drag: 0
|
||||
Use Gravity: true
|
||||
Interpolate: true
|
||||
Freeze Position X: false
|
||||
Freeze Position Y: false
|
||||
Freeze Position Z: false
|
||||
Freeze Rotation X: false
|
||||
Freeze Rotation Y: false
|
||||
Freeze Rotation Z: false
|
||||
Collider Component:
|
||||
Colliders:
|
||||
- Is Trigger: false
|
||||
Type: Box
|
||||
Half Extents: {x: 1, y: 1, z: 1}
|
||||
Friction: 0.400000006
|
||||
Bounciness: 0
|
||||
Density: 1
|
||||
Position Offset: {x: 0, y: 0, z: 0}
|
||||
Scripts: ~
|
||||
- EID: 3
|
||||
Name: Empty
|
||||
IsActive: true
|
||||
NumberOfChildren: 0
|
||||
Components:
|
||||
Transform Component:
|
||||
Translate: {x: -0.0094268322, y: 0, z: 0}
|
||||
Rotate: {x: -0, y: 0, z: -0}
|
||||
Scale: {x: 1, y: 1, z: 1}
|
||||
Scripts: ~
|
||||
- EID: 4
|
||||
Name: Empty2
|
||||
IsActive: true
|
||||
NumberOfChildren: 0
|
||||
Components:
|
||||
Transform Component:
|
||||
Translate: {x: 0, y: 0, z: 0}
|
||||
Rotate: {x: 0, y: 0, z: 0}
|
||||
Scale: {x: 1, y: 1, z: 1}
|
||||
Scripts: ~
|
||||
- EID: 9
|
||||
Name: Bag
|
||||
IsActive: true
|
||||
NumberOfChildren: 0
|
||||
Components:
|
||||
Transform Component:
|
||||
Translate: {x: 0, y: 0, z: 0}
|
||||
Rotate: {x: 0, y: 0, z: 0}
|
||||
Scale: {x: 1, y: 1, z: 1}
|
||||
Renderable Component:
|
||||
Mesh: 144838771
|
||||
Material: 123745521
|
||||
Scripts: ~
|
||||
- EID: 6
|
||||
Name: AI
|
||||
IsActive: true
|
||||
NumberOfChildren: 0
|
||||
Components:
|
||||
Transform Component:
|
||||
Translate: {x: -8, y: -2, z: 2.5}
|
||||
Rotate: {x: 0, y: 0, z: 0}
|
||||
Scale: {x: 1, y: 1, z: 1}
|
||||
Renderable Component:
|
||||
Mesh: 149697411
|
||||
Material: 126974645
|
||||
RigidBody Component:
|
||||
Type: Dynamic
|
||||
Mass: 1
|
||||
Drag: 0
|
||||
Angular Drag: 0
|
||||
Use Gravity: true
|
||||
Interpolate: false
|
||||
Freeze Position X: false
|
||||
Freeze Position Y: false
|
||||
Freeze Position Z: false
|
||||
Freeze Rotation X: true
|
||||
Freeze Rotation Y: true
|
||||
Freeze Rotation Z: true
|
||||
Collider Component:
|
||||
Colliders:
|
||||
- Is Trigger: false
|
||||
Type: Box
|
||||
Half Extents: {x: 0.5, y: 0.5, z: 0.5}
|
||||
Friction: 0.400000006
|
||||
Bounciness: 0
|
||||
Density: 1
|
||||
Position Offset: {x: 0, y: 0.5, z: 0}
|
||||
Scripts: ~
|
||||
- EID: 7
|
||||
Name: BigBoi
|
||||
IsActive: true
|
||||
NumberOfChildren: 0
|
||||
Components:
|
||||
Transform Component:
|
||||
Translate: {x: 0, y: -16.8647861, z: -14.039052}
|
||||
Rotate: {x: -0, y: 0, z: -0}
|
||||
Scale: {x: 28.1434975, y: 28.1434975, z: 28.1434975}
|
||||
Renderable Component:
|
||||
Mesh: 149697411
|
||||
Material: 126974645
|
||||
Scripts: ~
|
||||
- EID: 8
|
||||
Name: AmbientLight
|
||||
IsActive: true
|
||||
NumberOfChildren: 0
|
||||
Components:
|
||||
Light Component:
|
||||
Position: {x: 0, y: 0, z: 0}
|
||||
Type: Ambient
|
||||
Direction: {x: 0, y: 0, z: 1}
|
||||
Color: {x: 1, y: 1, z: 1, w: 1}
|
||||
Layer: 4294967295
|
||||
Strength: 0.25
|
||||
Scripts: ~
|
||||
- EID: 5
|
||||
Name: item
|
||||
IsActive: true
|
||||
NumberOfChildren: 0
|
||||
Components:
|
||||
Transform Component:
|
||||
Translate: {x: 0, y: -2, z: -5}
|
||||
Rotate: {x: 0, y: 0, z: 0}
|
||||
Scale: {x: 2, y: 2, z: 2}
|
||||
Renderable Component:
|
||||
Mesh: 144838771
|
||||
Material: 123745521
|
||||
RigidBody Component:
|
||||
Type: Dynamic
|
||||
Mass: 1
|
||||
Drag: 0
|
||||
Angular Drag: 0
|
||||
Use Gravity: true
|
||||
Interpolate: false
|
||||
Freeze Position X: false
|
||||
Freeze Position Y: false
|
||||
Freeze Position Z: false
|
||||
Freeze Rotation X: true
|
||||
Freeze Rotation Y: true
|
||||
Freeze Rotation Z: true
|
||||
Collider Component:
|
||||
Colliders:
|
||||
- Is Trigger: false
|
||||
Type: Box
|
||||
Half Extents: {x: 1, y: 1, z: 1}
|
||||
Friction: 0.400000006
|
||||
Bounciness: 0
|
||||
Density: 1
|
||||
Position Offset: {x: 0, y: 0.5, z: 0}
|
||||
- Is Trigger: true
|
||||
Type: Box
|
||||
Half Extents: {x: 2, y: 2, z: 2}
|
||||
Friction: 0.400000006
|
||||
Bounciness: 0
|
||||
Density: 1
|
||||
Position Offset: {x: 0, y: 0.5, z: 0}
|
||||
Scripts: ~
|
|
@ -0,0 +1,3 @@
|
|||
Name: M2Scene
|
||||
ID: 94283040
|
||||
Type: 5
|
|
@ -0,0 +1,72 @@
|
|||
- EID: 0
|
||||
Name: Default
|
||||
IsActive: true
|
||||
NumberOfChildren: 0
|
||||
Components:
|
||||
Transform Component:
|
||||
Translate: {x: 0, y: 0.304069757, z: 1.73034382}
|
||||
Rotate: {x: 0, y: 0, z: 0}
|
||||
Scale: {x: 1, y: 1, z: 1}
|
||||
Camera Component:
|
||||
Position: {x: 0, y: 0.304069757, z: 1.73034382}
|
||||
Pitch: 0
|
||||
Yaw: 0
|
||||
Roll: 0
|
||||
Width: 1200
|
||||
Height: 1080
|
||||
Near: 0.00999999978
|
||||
Far: 10000
|
||||
Perspective: true
|
||||
Scripts: ~
|
||||
- EID: 1
|
||||
Name: Raccoon
|
||||
IsActive: true
|
||||
NumberOfChildren: 1
|
||||
Components:
|
||||
Transform Component:
|
||||
Translate: {x: 0, y: 0, z: 0}
|
||||
Rotate: {x: 0, y: 0, z: 0}
|
||||
Scale: {x: 1, y: 1, z: 1}
|
||||
Renderable Component:
|
||||
Mesh: 149697411
|
||||
Material: 126974645
|
||||
Scripts: ~
|
||||
- EID: 3
|
||||
Name: Bag
|
||||
IsActive: true
|
||||
NumberOfChildren: 0
|
||||
Components:
|
||||
Transform Component:
|
||||
Translate: {x: 0.006237939, y: -0.000393368304, z: 0}
|
||||
Rotate: {x: -0, y: 2.79945588, z: 0}
|
||||
Scale: {x: 1.0000881, y: 1, z: 1.0000881}
|
||||
Renderable Component:
|
||||
Mesh: 144838771
|
||||
Material: 123745521
|
||||
Scripts: ~
|
||||
- EID: 2
|
||||
Name: DirectionalLight
|
||||
IsActive: true
|
||||
NumberOfChildren: 0
|
||||
Components:
|
||||
Light Component:
|
||||
Position: {x: 0, y: 0, z: 0}
|
||||
Type: Directional
|
||||
Direction: {x: 0, y: 0, z: 1}
|
||||
Color: {x: 1, y: 1, z: 1, w: 1}
|
||||
Layer: 4294967295
|
||||
Strength: 0
|
||||
Scripts: ~
|
||||
- EID: 4
|
||||
Name: AmbientLight
|
||||
IsActive: true
|
||||
NumberOfChildren: 0
|
||||
Components:
|
||||
Light Component:
|
||||
Position: {x: 0, y: 0, z: 0}
|
||||
Type: Ambient
|
||||
Direction: {x: 0, y: 0, z: 1}
|
||||
Color: {x: 1, y: 1, z: 1, w: 1}
|
||||
Layer: 4294967295
|
||||
Strength: 0.600000024
|
||||
Scripts: ~
|
|
@ -0,0 +1,3 @@
|
|||
Name: Scene2
|
||||
ID: 87285316
|
||||
Type: 5
|
|
@ -0,0 +1,183 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SHADE;
|
||||
|
||||
public class AIPrototype : Script
|
||||
{
|
||||
//This object's relevant components
|
||||
private Transform transform;
|
||||
private RigidBody rb;
|
||||
|
||||
/*[SerializeField]
|
||||
[Tooltip("The list of waypoints that the object will move around on")]
|
||||
private Vector3[] waypoints;*/
|
||||
|
||||
private Vector3[] waypoints = { new Vector3(-8.0f, -2.0f, 3.5f), new Vector3(-8.0f, -2.0f, -13.0f), new Vector3(8.0f, -2.0f, -13.0f), new Vector3(8.0f, -2.0f, 3.5f) };
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("How much force is applied in movement")]
|
||||
private float movementForceMultiplier = 100.0f;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("How fast the object moves about waypoints")]
|
||||
private float patrolSpeed = 0.4f;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("How fast the object moves while chasing")]
|
||||
private float chaseSpeed = 0.8f;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("How near the player must be to the AI for capture")]
|
||||
private float distanceToCapture = 1.2f;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("How near the player must be for the chase to begin. Should be less than distanceToEndChase")]
|
||||
private float distanceToStartChase = 2.0f;
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("How far the player must be for the chase to end. Should be greater than distanceToStartChase")]
|
||||
private float distanceToEndChase = 2.5f;
|
||||
|
||||
//Whether the AI is chasing or not
|
||||
private bool chaseMode;
|
||||
|
||||
//To cycle depending on the length of waypoints
|
||||
private int currentTargetWaypointIndex;
|
||||
|
||||
private GameObject? player;
|
||||
|
||||
|
||||
protected override void awake()
|
||||
{
|
||||
transform = GetComponent<Transform>();
|
||||
if (transform == null)
|
||||
{
|
||||
Debug.LogError("Transform is NULL!");
|
||||
}
|
||||
|
||||
rb = GetComponent<RigidBody>();
|
||||
if (rb == null)
|
||||
{
|
||||
Debug.LogError("Rigidbody is NULL!");
|
||||
}
|
||||
|
||||
currentTargetWaypointIndex = 0;
|
||||
|
||||
player = GameObject.Find("Player");
|
||||
if (player == null)
|
||||
{
|
||||
Debug.LogError("Player is NULL!");
|
||||
}
|
||||
|
||||
chaseMode = false;
|
||||
}
|
||||
|
||||
protected override void fixedUpdate()
|
||||
{
|
||||
//Patrolling
|
||||
if (!chaseMode)
|
||||
{
|
||||
//Head towards the next target
|
||||
Vector3 normalisedDifference = waypoints[currentTargetWaypointIndex] - transform.GlobalPosition;
|
||||
normalisedDifference /= normalisedDifference.GetMagnitude();
|
||||
|
||||
//transform.GlobalPosition += normalisedDifference * moveSpeed * (float)Time.DeltaTime;
|
||||
//rb.LinearVelocity = normalisedDifference * patrolSpeed;
|
||||
|
||||
//ORIGINAL INTENDED CODE
|
||||
/*rb.AddForce(new Vector3(normalisedDifference.x, 0.0f, normalisedDifference.z) * movementForceMultiplier);
|
||||
float currentSpeed = MathF.Sqrt(rb.LinearVelocity.x * rb.LinearVelocity.x + rb.LinearVelocity.z * rb.LinearVelocity.z);
|
||||
if (currentSpeed > patrolSpeed)
|
||||
{
|
||||
float adjustmentFactor = patrolSpeed / currentSpeed;
|
||||
Vector3 adjustedVelocity = rb.LinearVelocity;
|
||||
//adjustedVelocity *= adjustmentFactor;
|
||||
adjustedVelocity.x = patrolSpeed;
|
||||
adjustedVelocity.z = patrolSpeed;
|
||||
rb.LinearVelocity = adjustedVelocity;
|
||||
}*/
|
||||
|
||||
//TODO delete this when original intended code above works with velocity being limited correctly
|
||||
rb.LinearVelocity = normalisedDifference * patrolSpeed;
|
||||
|
||||
//transform.GlobalRotation.SetLookRotation(waypoints[currentTargetWaypointIndex], Vector3.Up);
|
||||
|
||||
//Cycle to next waypoint if near enough current waypoint
|
||||
if ((waypoints[currentTargetWaypointIndex] - transform.GlobalPosition).GetSqrMagnitude() <= 0.5f)
|
||||
{
|
||||
++currentTargetWaypointIndex;
|
||||
if (currentTargetWaypointIndex >= waypoints.Length)
|
||||
{
|
||||
currentTargetWaypointIndex = 0; //Recycle
|
||||
}
|
||||
}
|
||||
|
||||
//Go chase if near enough to player
|
||||
if (player != null)
|
||||
{
|
||||
Transform pTransform = player.GetValueOrDefault().GetComponent<Transform>();
|
||||
if ((pTransform.GlobalPosition - transform.GlobalPosition).GetMagnitude() <= distanceToStartChase)
|
||||
{
|
||||
//Start the chase
|
||||
chaseMode = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else //Chasing
|
||||
{
|
||||
if (player != null)
|
||||
{
|
||||
Transform pTransform = player.GetValueOrDefault().GetComponent<Transform>();
|
||||
|
||||
//Chase the player
|
||||
Vector3 normalisedDifference = pTransform.GlobalPosition - transform.GlobalPosition;
|
||||
normalisedDifference /= normalisedDifference.GetMagnitude();
|
||||
|
||||
//transform.GlobalPosition += normalisedDifference * moveSpeed * (float)Time.DeltaTime;
|
||||
|
||||
//ORIGINAL INTENDED CODE
|
||||
/*rb.AddForce(new Vector3(normalisedDifference.x, 0.0f, normalisedDifference.z) * movementForceMultiplier);
|
||||
float currentSpeed = MathF.Sqrt(rb.LinearVelocity.x * rb.LinearVelocity.x + rb.LinearVelocity.z * rb.LinearVelocity.z);
|
||||
if (currentSpeed > chaseSpeed)
|
||||
{
|
||||
float adjustmentFactor = chaseSpeed / currentSpeed;
|
||||
Vector3 adjustedVelocity = rb.LinearVelocity;
|
||||
adjustedVelocity *= adjustmentFactor;
|
||||
rb.LinearVelocity = adjustedVelocity;
|
||||
}*/
|
||||
|
||||
//TODO delete this when original intended code above works with velocity being limited correctly
|
||||
rb.LinearVelocity = normalisedDifference * chaseSpeed;
|
||||
|
||||
//Capture player if near enough
|
||||
if ((pTransform.GlobalPosition - transform.GlobalPosition).GetMagnitude() <= distanceToCapture)
|
||||
{
|
||||
player.GetValueOrDefault().GetScript<PlayerController>().currentState = PlayerController.RaccoonStates.CAUGHT;
|
||||
}
|
||||
|
||||
//End chase if too far
|
||||
if ((pTransform.GlobalPosition - transform.GlobalPosition).GetMagnitude() >= distanceToEndChase)
|
||||
{
|
||||
//Stop the chase
|
||||
chaseMode = false;
|
||||
|
||||
//Find the nearest waypoint to go instead
|
||||
float nearestWaypointDistance = 99999999999999.9f;
|
||||
for (int i = 0; i < waypoints.Length; ++i)
|
||||
{
|
||||
if ((waypoints[i] - transform.GlobalPosition).GetSqrMagnitude() < nearestWaypointDistance)
|
||||
{
|
||||
nearestWaypointDistance = waypoints[i].GetSqrMagnitude();
|
||||
currentTargetWaypointIndex = i;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
Name: AIPrototype
|
||||
ID: 163215061
|
||||
Type: 9
|
|
@ -0,0 +1,21 @@
|
|||
using System;
|
||||
using SHADE;
|
||||
|
||||
namespace SHADE_Scripting
|
||||
{
|
||||
public class CameraControl :Script
|
||||
{
|
||||
public float turnSpeed = 0.5f;
|
||||
|
||||
protected override void update()
|
||||
{
|
||||
//Camera
|
||||
Camera cam = GetComponent<Camera>();
|
||||
Vector2 mouseVel = Input.GetMouseVelocity();
|
||||
|
||||
cam.Pitch -= mouseVel.y * turnSpeed * (float)Time.DeltaTime;
|
||||
cam.Yaw += mouseVel.x * turnSpeed * (float)Time.DeltaTime;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
Name: CameraControl
|
||||
ID: 158782344
|
||||
Type: 9
|
|
@ -0,0 +1,23 @@
|
|||
using SHADE;
|
||||
using System;
|
||||
|
||||
public class CameraFix : Script
|
||||
{
|
||||
|
||||
private Transform tranform;
|
||||
public Vector3 pos = Vector3.Zero;
|
||||
public Vector3 rot = Vector3.Zero;
|
||||
protected override void awake()
|
||||
{
|
||||
tranform = GetComponent<Transform>();
|
||||
if (tranform == null)
|
||||
Debug.LogError("tranform is NULL!");
|
||||
else
|
||||
{
|
||||
tranform.LocalPosition = pos;
|
||||
tranform.LocalEulerAngles = rot;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
Name: CameraFix
|
||||
ID: 162231964
|
||||
Type: 9
|
|
@ -0,0 +1,17 @@
|
|||
using SHADE;
|
||||
using System;
|
||||
public class Item : Script
|
||||
{
|
||||
public enum ItemCategory
|
||||
{
|
||||
LIGHT,
|
||||
MEDIUM,
|
||||
HEAVY
|
||||
}
|
||||
|
||||
public ItemCategory currCategory;
|
||||
|
||||
protected override void awake()
|
||||
{
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
Name: Item
|
||||
ID: 163145289
|
||||
Type: 9
|
|
@ -0,0 +1,71 @@
|
|||
using SHADE;
|
||||
using System;
|
||||
public class PhysicsTest : Script
|
||||
{
|
||||
[SerializeField]
|
||||
[Tooltip("Force to apply when pressing Space.")]
|
||||
private Vector3 Force = new Vector3(0.0f, 200.0f, 0.0f);
|
||||
private Transform Transform;
|
||||
private RigidBody RigidBody;
|
||||
private Collider Collider;
|
||||
|
||||
protected override void awake()
|
||||
{
|
||||
Transform = GetComponent<Transform>();
|
||||
if (Transform == null)
|
||||
{
|
||||
Debug.LogError("Transform is NULL!");
|
||||
}
|
||||
RigidBody = GetComponent<RigidBody>();
|
||||
if (RigidBody == null)
|
||||
{
|
||||
Debug.LogError("RigidBody is NULL!");
|
||||
}
|
||||
Collider = GetComponent<Collider>();
|
||||
if (Collider == null)
|
||||
{
|
||||
Debug.LogError("Collider is NULL!");
|
||||
}
|
||||
|
||||
var subColider = Collider.CollisionShapeCount;
|
||||
Debug.Log($"There are {subColider} colliders.");
|
||||
}
|
||||
protected override void update()
|
||||
{
|
||||
if (Input.GetKeyUp(Input.KeyCode.Space))
|
||||
{
|
||||
RigidBody.AddForce(Force);
|
||||
Debug.Log($"Jump!");
|
||||
}
|
||||
}
|
||||
|
||||
protected override void fixedUpdate()
|
||||
{
|
||||
Debug.Log("Fixed Update");
|
||||
}
|
||||
|
||||
protected override void onCollisionEnter(CollisionInfo info)
|
||||
{
|
||||
Debug.Log($"Collision Enter: {info.GameObject.Name}");
|
||||
}
|
||||
protected override void onCollisionStay(CollisionInfo info)
|
||||
{
|
||||
Debug.Log($"Collision Stay: {info.GameObject.Name}");
|
||||
}
|
||||
protected override void onCollisionExit(CollisionInfo info)
|
||||
{
|
||||
Debug.Log($"Collision Exit: {info.GameObject.Name}");
|
||||
}
|
||||
protected override void onTriggerEnter(CollisionInfo info)
|
||||
{
|
||||
Debug.Log($"Trigger Enter: {info.GameObject.Name}");
|
||||
}
|
||||
protected override void onTriggerStay(CollisionInfo info)
|
||||
{
|
||||
Debug.Log($"Trigger Stay: {info.GameObject.Name}");
|
||||
}
|
||||
protected override void onTriggerExit(CollisionInfo info)
|
||||
{
|
||||
Debug.Log($"Trigger Exit: {info.GameObject.Name}");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
Name: PhysicsTest
|
||||
ID: 159771801
|
||||
Type: 9
|
|
@ -0,0 +1,98 @@
|
|||
using SHADE;
|
||||
using System;
|
||||
using static PlayerController;
|
||||
|
||||
public class PickAndThrow : Script
|
||||
{
|
||||
public Vector3 throwForce = new Vector3(100.0f, 200.0f, 100.0f);
|
||||
public GameObject item;
|
||||
private PlayerController pc;
|
||||
private Camera cam;
|
||||
private Transform itemTransform;
|
||||
private RigidBody itemRidibody;
|
||||
private Transform raccoonHoldLocation;
|
||||
private float lastXDir;
|
||||
private float lastZDir;
|
||||
private bool inRange = false;
|
||||
|
||||
protected override void awake()
|
||||
{
|
||||
pc = GetScript<PlayerController>();
|
||||
raccoonHoldLocation = GetComponentInChildren<Transform>();
|
||||
if (raccoonHoldLocation == null)
|
||||
Debug.Log("CHILD EMPTY");
|
||||
else
|
||||
raccoonHoldLocation.LocalPosition = new Vector3(0.0f, 1.0f, 0.0f);
|
||||
}
|
||||
protected override void update()
|
||||
{
|
||||
if (cam == null)
|
||||
cam = GetComponentInChildren<Camera>();
|
||||
else if (cam != null)
|
||||
{
|
||||
Vector3 camerAixs = cam.GetForward();
|
||||
camerAixs.y = 0;
|
||||
camerAixs.Normalise();
|
||||
lastXDir = camerAixs.x;
|
||||
lastZDir = camerAixs.z;
|
||||
}
|
||||
|
||||
if (item.GetScript<Item>() != null && itemTransform == null && itemRidibody == null)
|
||||
{
|
||||
itemTransform = item.GetComponent<Transform>();
|
||||
if (itemTransform == null)
|
||||
Debug.Log("Item transform EMPTY");
|
||||
|
||||
itemRidibody = item.GetComponent<RigidBody>();
|
||||
if (itemRidibody == null)
|
||||
Debug.Log("Item rb EMPTY");
|
||||
}
|
||||
|
||||
if (pc != null && inRange && !pc.holdItem && Input.GetKey(Input.KeyCode.E))
|
||||
pc.holdItem = true;
|
||||
|
||||
if (pc != null && itemRidibody != null && itemTransform != null && pc.holdItem)
|
||||
{
|
||||
itemTransform.LocalPosition = raccoonHoldLocation.GlobalPosition;
|
||||
itemRidibody.IsGravityEnabled = false;
|
||||
itemRidibody.LinearVelocity = Vector3.Zero;
|
||||
itemRidibody.AngularVelocity = Vector3.Zero;
|
||||
|
||||
if (Input.GetMouseButtonDown(Input.MouseCode.LeftButton))
|
||||
{
|
||||
pc.holdItem = false;
|
||||
inRange = false;
|
||||
itemRidibody.IsGravityEnabled = true;
|
||||
itemRidibody.AddForce(new Vector3(throwForce.x * lastXDir, throwForce.y, throwForce.z * lastZDir));
|
||||
itemRidibody.LinearVelocity += pc.rb.LinearVelocity;
|
||||
}
|
||||
}
|
||||
else if(!pc.holdItem && itemRidibody != null)
|
||||
itemRidibody.IsGravityEnabled = true;
|
||||
}
|
||||
protected override void onCollisionEnter(CollisionInfo info)
|
||||
{
|
||||
}
|
||||
protected override void onTriggerEnter(CollisionInfo info)
|
||||
{
|
||||
//Debug.Log("ENTER");
|
||||
if (info.GameObject.GetScript<Item>() != null && !pc.holdItem)
|
||||
{
|
||||
item = info.GameObject;
|
||||
inRange = true;
|
||||
}
|
||||
}
|
||||
protected override void onTriggerStay(CollisionInfo info)
|
||||
{
|
||||
//Debug.Log("STAY");
|
||||
}
|
||||
protected override void onTriggerExit(CollisionInfo info)
|
||||
{
|
||||
//Debug.Log("EXIT");
|
||||
if (info.GameObject.GetScript<Item>() != null && !pc.holdItem)
|
||||
{
|
||||
inRange = false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
Name: PickAndThrow
|
||||
ID: 165331952
|
||||
Type: 9
|
|
@ -0,0 +1,358 @@
|
|||
using SHADE;
|
||||
using System;
|
||||
using static Item;
|
||||
|
||||
public class PlayerController : Script
|
||||
{
|
||||
public enum RaccoonStates
|
||||
{
|
||||
IDILE,
|
||||
WALKING,
|
||||
RUNNING,
|
||||
JUMP,
|
||||
FALLING,
|
||||
CAUGHT,
|
||||
TOTAL
|
||||
}
|
||||
|
||||
public RigidBody rb { get; set; }
|
||||
private Transform tranform;
|
||||
private Camera cam;
|
||||
private PickAndThrow pat;
|
||||
|
||||
//to be remove
|
||||
public float drag = 2.0f;
|
||||
public bool holdItem { get; set; }
|
||||
[SerializeField]
|
||||
[Tooltip("The current state fo the raccoon")]
|
||||
public RaccoonStates currentState = RaccoonStates.IDILE;
|
||||
|
||||
//Movement variables============================================================
|
||||
[SerializeField]
|
||||
[Tooltip("Max vel for walking")]
|
||||
public float maxMoveVel = 2.0f;
|
||||
[SerializeField]
|
||||
[Tooltip("how much force is apply for walking")]
|
||||
public float moveForce = 50.0f;
|
||||
[SerializeField]
|
||||
[Tooltip("increase the moveForce and maxMoveVel by its amt")]
|
||||
public float sprintMultiplier = 2.0f;
|
||||
|
||||
private float oldForce;
|
||||
private float maxOldVel;
|
||||
private bool sprintIncreaseOnce = false;
|
||||
|
||||
public float xAxisMove { get; set; }
|
||||
public float zAxisMove { get; set; }
|
||||
|
||||
public Vector2 axisMove { get; set; }
|
||||
|
||||
public bool isMoveKeyPress { get; set; }
|
||||
|
||||
[SerializeField]
|
||||
[Tooltip("curr not working")]
|
||||
public float rotationFactorPerFrame = 1.0f;
|
||||
|
||||
//Jumping vars==================================================================
|
||||
[SerializeField]
|
||||
[Tooltip("max height of the jump")]
|
||||
public float maxJumpHeight = 4.0f;
|
||||
[SerializeField]
|
||||
[Tooltip("max amt of time it will take for the jump")]
|
||||
public float maxJumpTime = 0.75f;
|
||||
[SerializeField]
|
||||
[Tooltip("increase gravity when falling")]
|
||||
public float fallMultipler = 2.0f;
|
||||
private float initialJumpVel;
|
||||
private bool isGrounded = true;
|
||||
private float gravity = -9.8f;
|
||||
private float groundGravity = -0.5f;
|
||||
|
||||
//ItemMultipler==================================================================
|
||||
public float lightMultiper = 0.75f;
|
||||
public float mediumMultiper = 0.5f;
|
||||
public float heavyMultiper = 0.25f;
|
||||
|
||||
protected override void awake()
|
||||
{
|
||||
//default setup
|
||||
isMoveKeyPress = false;
|
||||
holdItem = false;
|
||||
|
||||
//Jump setup
|
||||
float timeToApex = maxJumpTime / 2;
|
||||
gravity = (-2 * maxJumpHeight) / MathF.Pow(timeToApex, 2);
|
||||
initialJumpVel = (2 * maxJumpHeight) / timeToApex;
|
||||
|
||||
//rigidbody check
|
||||
rb = GetComponent<RigidBody>();
|
||||
if (rb == null)
|
||||
Debug.LogError("RigidBody is NULL!");
|
||||
else
|
||||
{
|
||||
rb.IsGravityEnabled = false;
|
||||
rb.FreezeRotationX = true;
|
||||
rb.FreezeRotationY = true;
|
||||
rb.FreezeRotationZ = true;
|
||||
rb.Drag = drag;
|
||||
rb.Interpolating = false;
|
||||
}
|
||||
|
||||
//Transform check
|
||||
tranform = GetComponent<Transform>();
|
||||
if(tranform == null)
|
||||
Debug.LogError("tranform is NULL!");
|
||||
|
||||
//PickAndThrow checl
|
||||
pat = GetScript<PickAndThrow>();
|
||||
if (pat == null)
|
||||
Debug.LogError("PickAndThrow is NULL!");
|
||||
|
||||
//toRemove
|
||||
tranform.LocalPosition = new Vector3(-3.0f, -2.0f, -5.0f);
|
||||
tranform.LocalRotation = Quaternion.Euler(0.0f, 0.0f, 0.0f);
|
||||
}
|
||||
|
||||
protected override void update()
|
||||
{
|
||||
if (cam == null)
|
||||
cam = GetComponentInChildren<Camera>();
|
||||
|
||||
//toRemove
|
||||
if (Input.GetKey(Input.KeyCode.G))
|
||||
{
|
||||
tranform.LocalRotation = Quaternion.Euler(0.0f, 0.0f, 0.0f);
|
||||
tranform.LocalPosition = new Vector3(-3.0f, -2.0f, -5.0f);
|
||||
}
|
||||
|
||||
GotCaught();
|
||||
MoveKey();
|
||||
|
||||
|
||||
|
||||
//Debug.Log(currentState.ToString() + " x:" + rb.LinearVelocity.x.ToString() + " y:" + rb.LinearVelocity.y.ToString() + " z:" + rb.LinearVelocity.z.ToString());
|
||||
}
|
||||
|
||||
protected override void fixedUpdate()
|
||||
{
|
||||
//Rotation();
|
||||
Move();
|
||||
Sprint();
|
||||
Jump();
|
||||
Gravity();
|
||||
}
|
||||
|
||||
|
||||
private void MoveKey()
|
||||
{
|
||||
/* if (Input.GetKey(Input.KeyCode.A))
|
||||
xAxisMove = -1;
|
||||
else if (Input.GetKey(Input.KeyCode.D))
|
||||
xAxisMove = 1;
|
||||
else
|
||||
xAxisMove = 0;
|
||||
|
||||
if (Input.GetKey(Input.KeyCode.W))
|
||||
zAxisMove = -1;
|
||||
else if (Input.GetKey(Input.KeyCode.S))
|
||||
zAxisMove = 1;
|
||||
else
|
||||
zAxisMove = 0;*/
|
||||
|
||||
|
||||
xAxisMove = 0;
|
||||
zAxisMove = 0;
|
||||
axisMove = Vector2.Zero;
|
||||
if (Input.GetKey(Input.KeyCode.W))
|
||||
{
|
||||
Vector3 camerAixs = cam.GetForward();
|
||||
camerAixs.y = 0;
|
||||
camerAixs.Normalise();
|
||||
xAxisMove = camerAixs.x;
|
||||
zAxisMove = camerAixs.z;
|
||||
axisMove += new Vector2(camerAixs.x, camerAixs.z);
|
||||
}
|
||||
if (Input.GetKey(Input.KeyCode.S))
|
||||
{
|
||||
Vector3 camerAixs = cam.GetForward();
|
||||
camerAixs.y = 0;
|
||||
camerAixs.Normalise();
|
||||
xAxisMove = -camerAixs.x;
|
||||
zAxisMove = -camerAixs.z;
|
||||
axisMove -= new Vector2(camerAixs.x, camerAixs.z);
|
||||
}
|
||||
if (Input.GetKey(Input.KeyCode.A))
|
||||
{
|
||||
Vector3 camerAixs = cam.GetRight();
|
||||
camerAixs.y = 0;
|
||||
camerAixs.Normalise();
|
||||
xAxisMove = -camerAixs.x;
|
||||
zAxisMove = -camerAixs.z;
|
||||
axisMove -= new Vector2(camerAixs.x, camerAixs.z);
|
||||
}
|
||||
if (Input.GetKey(Input.KeyCode.D))
|
||||
{
|
||||
Vector3 camerAixs = cam.GetRight();
|
||||
camerAixs.y = 0;
|
||||
camerAixs.Normalise();
|
||||
xAxisMove = camerAixs.x;
|
||||
zAxisMove = camerAixs.z;
|
||||
axisMove += new Vector2(camerAixs.x, camerAixs.z);
|
||||
}
|
||||
axisMove.Normalise();
|
||||
isMoveKeyPress = xAxisMove != 0 || zAxisMove != 0;
|
||||
|
||||
if(isMoveKeyPress && currentState != RaccoonStates.RUNNING && isGrounded)
|
||||
currentState = RaccoonStates.WALKING;
|
||||
|
||||
if (!isMoveKeyPress && isGrounded)
|
||||
currentState = RaccoonStates.IDILE;
|
||||
}
|
||||
|
||||
private void Move()
|
||||
{
|
||||
if (rb != null)
|
||||
{
|
||||
rb.AddForce(new Vector3(axisMove.x, 0.0f,axisMove.y) * moveForce);
|
||||
|
||||
if (isMoveKeyPress)
|
||||
{
|
||||
if (rb.LinearVelocity.x > maxMoveVel || rb.LinearVelocity.x < -maxMoveVel)
|
||||
{
|
||||
Vector3 v = rb.LinearVelocity;
|
||||
v.x = System.Math.Clamp(v.x, -maxMoveVel, maxMoveVel);
|
||||
rb.LinearVelocity = v;
|
||||
}
|
||||
if (rb.LinearVelocity.z > maxMoveVel || rb.LinearVelocity.z < -maxMoveVel)
|
||||
{
|
||||
Vector3 v = rb.LinearVelocity;
|
||||
v.z = System.Math.Clamp(v.z, -maxMoveVel, maxMoveVel);
|
||||
rb.LinearVelocity = v;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Sprint()
|
||||
{
|
||||
if (Input.GetKey(Input.KeyCode.LeftShift) && isMoveKeyPress && isGrounded)
|
||||
{
|
||||
currentState = RaccoonStates.RUNNING;
|
||||
holdItem = false;
|
||||
if (!sprintIncreaseOnce)
|
||||
{
|
||||
sprintIncreaseOnce = true;
|
||||
oldForce = moveForce;
|
||||
moveForce *= sprintMultiplier;
|
||||
|
||||
maxOldVel = maxMoveVel;
|
||||
maxMoveVel *= sprintMultiplier;
|
||||
}
|
||||
}
|
||||
|
||||
if (Input.GetKeyUp(Input.KeyCode.LeftShift))
|
||||
{
|
||||
if(isMoveKeyPress)
|
||||
currentState = RaccoonStates.WALKING;
|
||||
sprintIncreaseOnce = false;
|
||||
moveForce = oldForce;
|
||||
maxMoveVel = maxOldVel;
|
||||
}
|
||||
}
|
||||
|
||||
//press and hold jump
|
||||
private void Jump()
|
||||
{
|
||||
if (currentState == RaccoonStates.WALKING || currentState == RaccoonStates.RUNNING || currentState == RaccoonStates.IDILE)
|
||||
{
|
||||
if (Input.GetKeyDown(Input.KeyCode.Space) && isGrounded && rb != null)
|
||||
{
|
||||
currentState = RaccoonStates.JUMP;
|
||||
Vector3 v = rb.LinearVelocity;
|
||||
v.y = initialJumpVel * 0.5f;
|
||||
if (pat != null && pat.item.GetScript<Item>() != null && holdItem)
|
||||
{
|
||||
Item item = pat.item.GetScript<Item>();
|
||||
if (item.currCategory == ItemCategory.LIGHT)
|
||||
v.y *= lightMultiper;
|
||||
if (item.currCategory == ItemCategory.MEDIUM)
|
||||
v.y *= mediumMultiper;
|
||||
if (item.currCategory == ItemCategory.HEAVY)
|
||||
v.y *= heavyMultiper;
|
||||
}
|
||||
rb.LinearVelocity = v;
|
||||
}
|
||||
}
|
||||
|
||||
if(rb != null && !isGrounded && (rb.LinearVelocity.y < 0.0f || Input.GetKeyUp(Input.KeyCode.Space)))
|
||||
currentState = RaccoonStates.FALLING;
|
||||
}
|
||||
|
||||
private void Rotation()
|
||||
{
|
||||
Vector3 poitionToLookAt;
|
||||
poitionToLookAt.x = xAxisMove;
|
||||
poitionToLookAt.y = 0.0f;
|
||||
poitionToLookAt.z = zAxisMove;
|
||||
|
||||
if (tranform != null)
|
||||
{
|
||||
Quaternion currentRotation = tranform.LocalRotation;
|
||||
if (currentState == RaccoonStates.WALKING || currentState == RaccoonStates.RUNNING)
|
||||
{
|
||||
Quaternion targetRotation = Quaternion.LookRotation(poitionToLookAt, new Vector3(0.0f, 1.0f, 0.0f));
|
||||
tranform.LocalRotation = Quaternion.Slerp(currentRotation, targetRotation, rotationFactorPerFrame * (float)Time.DeltaTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Gravity()
|
||||
{
|
||||
if (rb != null)
|
||||
{
|
||||
//check player vel.y if its close to zero its on the ground
|
||||
if (SHADE.Math.CompareFloat(rb.LinearVelocity.y, 0.0f))
|
||||
isGrounded = true;
|
||||
else
|
||||
isGrounded = false;
|
||||
|
||||
Vector3 v = rb.LinearVelocity;
|
||||
|
||||
if (isGrounded)
|
||||
v.y = groundGravity;
|
||||
else if (currentState == RaccoonStates.FALLING)
|
||||
{
|
||||
float prevYVel = v.y;
|
||||
float newYVel = v.y + (gravity * fallMultipler * (float)Time.DeltaTime);
|
||||
float nextYVel = (prevYVel + newYVel) * 0.5f;
|
||||
v.y = nextYVel;
|
||||
}
|
||||
else
|
||||
{
|
||||
float prevYVel = v.y;
|
||||
float newYVel = v.y + (gravity * (float)Time.DeltaTime);
|
||||
float nextYVel = (prevYVel + newYVel) * 0.5f;
|
||||
v.y = nextYVel;
|
||||
}
|
||||
|
||||
rb.LinearVelocity = v;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void GotCaught()
|
||||
{
|
||||
if (currentState == RaccoonStates.CAUGHT && tranform != null)
|
||||
{
|
||||
currentState = RaccoonStates.IDILE;
|
||||
tranform.LocalPosition = new Vector3(-3.0f, -2.0f, -5.0f);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void onCollisionEnter(CollisionInfo info)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
Name: PlayerController
|
||||
ID: 164563088
|
||||
Type: 9
|
|
@ -0,0 +1,9 @@
|
|||
using SHADE;
|
||||
|
||||
public class PrintWhenActive : Script
|
||||
{
|
||||
protected override void update()
|
||||
{
|
||||
Debug.Log("Active!");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
Name: PrintWhenActive
|
||||
ID: 162536221
|
||||
Type: 9
|
|
@ -0,0 +1,55 @@
|
|||
using SHADE;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class RaccoonShowcase : Script
|
||||
{
|
||||
[SerializeField]
|
||||
[Tooltip("Speed of the rotation in radians per second.")]
|
||||
[Range(-1.0f, 2.0f)]
|
||||
private double RotateSpeed = 1.0;
|
||||
//[SerializeField]
|
||||
//[Range(-5, 20)]
|
||||
//private int test = 5;
|
||||
[SerializeField]
|
||||
[Tooltip("Speed of the scaling in radians per second around each axis.")]
|
||||
private Vector3 ScaleSpeed = Vector3.One;
|
||||
private Transform Transform;
|
||||
private double rotation = 0.0;
|
||||
private Vector3 scale = Vector3.Zero;
|
||||
private double originalScale = 1.0f;
|
||||
[Tooltip("Sample list of Vector3s.")]
|
||||
public List<Vector3> vecList = new List<Vector3>(new Vector3[] { new Vector3(1, 2, 3), new Vector3(4, 5, 6) });
|
||||
[Range(-5, 5)]
|
||||
public List<int> intList = new List<int>(new int[] { 2, 8, 2, 6, 8, 0, 1 });
|
||||
public List<Light.Type> enumList = new List<Light.Type>(new Light.Type[] { Light.Type.Point, Light.Type.Directional, Light.Type.Ambient });
|
||||
|
||||
protected override void awake()
|
||||
{
|
||||
Transform = GetComponent<Transform>();
|
||||
if (Transform == null)
|
||||
{
|
||||
Debug.LogError("Transform is NULL!");
|
||||
}
|
||||
|
||||
foreach (var child in Owner)
|
||||
{
|
||||
Debug.Log(child.Name);
|
||||
}
|
||||
|
||||
originalScale = Transform.LocalScale.z;
|
||||
}
|
||||
protected override void update()
|
||||
{
|
||||
//rotation += RotateSpeed * 0.16;
|
||||
//scale += ScaleSpeed * 0.16;
|
||||
//Transform.LocalRotation = new Vector3(0.0f, rotation, 0.0f);
|
||||
//Transform.LocalScale = new Vector3(System.Math.Abs(System.Math.Sin(scale.x)) * originalScale, System.Math.Abs(System.Math.Cos(scale.y)) * originalScale, System.Math.Abs(System.Math.Sin(scale.z)) * originalScale);
|
||||
}
|
||||
|
||||
protected override void onDrawGizmos()
|
||||
{
|
||||
Gizmos.DrawLine(new Vector3(-1.0f, 0.0f, 0.0f), new Vector3(1.0f, 0.0f, 0.0f));
|
||||
Gizmos.DrawLine(new Vector3(-1.0f, 1.0f, 0.0f), new Vector3(1.0f, 1.0f, 0.0f), Color.Red);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
Name: RaccoonShowcase
|
||||
ID: 159969631
|
||||
Type: 9
|
|
@ -0,0 +1,32 @@
|
|||
using SHADE;
|
||||
using System;
|
||||
|
||||
public class RaccoonSpin : Script
|
||||
{
|
||||
[SerializeField]
|
||||
[Tooltip("Speed of the rotation in radians per second.")]
|
||||
private float RotateSpeed = 1.0f;
|
||||
private float rotation = 0.0f;
|
||||
[SerializeField]
|
||||
private CallbackEvent emptyEvent;
|
||||
[SerializeField]
|
||||
private CallbackEvent<int> testEvent;
|
||||
[SerializeField]
|
||||
private CallbackEvent<int, double, Vector3> testEvent3 = new CallbackEvent<int, double, Vector3>();
|
||||
private Transform Transform;
|
||||
|
||||
protected override void awake()
|
||||
{
|
||||
emptyEvent = new CallbackEvent();
|
||||
emptyEvent.RegisterAction(() => Debug.Log("Empty event action!"));
|
||||
testEvent = new CallbackEvent<int>();
|
||||
Action<int> action = (x) => Debug.Log($"{x}");
|
||||
testEvent.RegisterAction(action);
|
||||
|
||||
Transform = GetComponent<Transform>();
|
||||
if (Transform == null)
|
||||
{
|
||||
Debug.LogError("Transform is NULL!");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
Name: RaccoonSpin
|
||||
ID: 157367824
|
||||
Type: 9
|
|
@ -0,0 +1,60 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SHADE;
|
||||
|
||||
|
||||
namespace SHADE_Scripting
|
||||
{
|
||||
public class ThirdPersonCamera: Script
|
||||
{
|
||||
|
||||
public float armLength = 2.0f;
|
||||
public float turnSpeedPitch = 0.3f;
|
||||
public float turnSpeedYaw = 0.5f;
|
||||
public float pitchClamp = 45.0f;
|
||||
|
||||
protected override void awake()
|
||||
{
|
||||
AddComponent<Transform>();
|
||||
|
||||
if(!GetComponent<Camera>())
|
||||
{
|
||||
AddComponent<Camera>();
|
||||
}
|
||||
GetComponent<Camera>().SetMainCamera();
|
||||
if (!GetComponent<CameraArm>())
|
||||
{
|
||||
AddComponent<CameraArm>();
|
||||
}
|
||||
GetComponent<CameraArm>().ArmLength = armLength;
|
||||
}
|
||||
|
||||
protected override void update()
|
||||
{
|
||||
if (Input.GetMouseButton(Input.MouseCode.RightButton))
|
||||
{
|
||||
CameraArm arm = GetComponent<CameraArm>();
|
||||
if (arm)
|
||||
{
|
||||
Vector2 vel = Input.GetMouseVelocity();
|
||||
arm.Pitch -= vel.y * turnSpeedPitch * Time.DeltaTimeF;
|
||||
arm.Yaw += vel.x * turnSpeedYaw * Time.DeltaTimeF;
|
||||
|
||||
if (arm.Pitch > pitchClamp)
|
||||
{
|
||||
arm.Pitch = pitchClamp;
|
||||
}
|
||||
else if (arm.Pitch < 0)
|
||||
{
|
||||
arm.Pitch = 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
Name: ThirdPersonCamera
|
||||
ID: 154161201
|
||||
Type: 9
|
|
@ -0,0 +1,17 @@
|
|||
#version 450
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
#extension GL_ARB_shading_language_420pack : enable
|
||||
#extension GL_EXT_nonuniform_qualifier : require
|
||||
|
||||
layout(location = 0) in struct
|
||||
{
|
||||
vec4 vertColor;
|
||||
} In;
|
||||
|
||||
|
||||
layout(location = 0) out vec4 outColor;
|
||||
|
||||
void main()
|
||||
{
|
||||
outColor = In.vertColor;
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: DebugDraw_FS
|
||||
ID: 36671027
|
||||
Type: 2
|
|
@ -0,0 +1,24 @@
|
|||
#version 450
|
||||
#extension GL_KHR_vulkan_glsl : enable
|
||||
|
||||
layout(location = 0) in vec4 aVertexPos;
|
||||
layout(location = 1) in vec4 aVertColor;
|
||||
|
||||
|
||||
layout(location = 0) out struct
|
||||
{
|
||||
vec4 vertColor; // location 0
|
||||
|
||||
} Out;
|
||||
|
||||
layout(set = 2, binding = 0) uniform CameraData
|
||||
{
|
||||
vec4 position;
|
||||
mat4 vpMat;
|
||||
} cameraData;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = cameraData.vpMat * vec4 (aVertexPos.xyz, 1.0f);
|
||||
Out.vertColor = aVertColor;
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: DebugDraw_VS
|
||||
ID: 48002439
|
||||
Type: 2
|
|
@ -0,0 +1,97 @@
|
|||
#version 450
|
||||
|
||||
struct DirectionalLightStruct
|
||||
{
|
||||
vec3 direction;
|
||||
uint isActive;
|
||||
uint cullingMask;
|
||||
vec4 diffuseColor;
|
||||
};
|
||||
|
||||
struct AmbientLightStruct
|
||||
{
|
||||
vec4 ambientColor;
|
||||
float strength;
|
||||
uint isActive;
|
||||
uint cullingMask;
|
||||
};
|
||||
|
||||
layout(local_size_x = 16, local_size_y = 16) in;
|
||||
layout(set = 4, binding = 0, rgba32f) uniform image2D positions;
|
||||
layout(set = 4, binding = 1, rgba32f) uniform image2D normals;
|
||||
layout(set = 4, binding = 2, rgba8) uniform image2D albedo;
|
||||
layout(set = 4, binding = 3, r32ui) uniform uimage2D lightLayerData;
|
||||
layout(set = 4, binding = 4, r8) uniform image2D ssaoBlurredImage;
|
||||
layout(set = 4, binding = 5, rgba8) uniform image2D targetImage;
|
||||
|
||||
layout(set = 1, binding = 0) uniform LightCounts
|
||||
{
|
||||
uint directionalLights;
|
||||
uint pointLights;
|
||||
uint spotLights;
|
||||
uint ambientLights;
|
||||
|
||||
} lightCounts;
|
||||
|
||||
layout(std430, set = 1, binding = 1) buffer DirectionalLightData
|
||||
{
|
||||
DirectionalLightStruct dLightData[];
|
||||
} DirLightData;
|
||||
|
||||
layout(std430, set = 1, binding = 4) buffer AmbientLightData
|
||||
{
|
||||
AmbientLightStruct aLightData[];
|
||||
} AmbLightData;
|
||||
|
||||
void main()
|
||||
{
|
||||
// convenient variables
|
||||
ivec2 globalThread = ivec2(gl_GlobalInvocationID);
|
||||
|
||||
// Get the diffuse color of the pixel
|
||||
vec3 pixelDiffuse = imageLoad (albedo, globalThread).rgb;
|
||||
|
||||
// Get position of fragment in world space
|
||||
vec3 positionView = imageLoad (positions, globalThread).rgb;
|
||||
|
||||
// normal of fragment
|
||||
vec3 normalView = imageLoad(normals, globalThread).rgb;
|
||||
|
||||
// light layer index
|
||||
uint lightLayer = imageLoad (lightLayerData, globalThread).r;
|
||||
|
||||
vec3 fragColor = vec3 (0.0f);
|
||||
|
||||
for (int i = 0; i < lightCounts.directionalLights; ++i)
|
||||
{
|
||||
if ((lightLayer & DirLightData.dLightData[i].cullingMask) != 0)
|
||||
{
|
||||
// get normalized direction of light
|
||||
vec3 dLightNormalized = normalize (DirLightData.dLightData[i].direction);
|
||||
|
||||
// Get diffuse strength
|
||||
float diffuseStrength = max (0, dot (dLightNormalized, normalView));
|
||||
|
||||
// Calculate the fragment color
|
||||
fragColor += DirLightData.dLightData[i].diffuseColor.rgb * diffuseStrength.rrr * pixelDiffuse;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < lightCounts.ambientLights; ++i)
|
||||
{
|
||||
if ((lightLayer & AmbLightData.aLightData[i].cullingMask) != 0)
|
||||
{
|
||||
// Just do some add
|
||||
//fragColor += pixelDiffuse.rgb * AmbLightData.aLightData[i].ambientColor.rgb * vec3 (0.5f);
|
||||
fragColor += pixelDiffuse.rgb * AmbLightData.aLightData[i].ambientColor.rgb * vec3 (AmbLightData.aLightData[i].strength);
|
||||
}
|
||||
}
|
||||
|
||||
float ssaoVal = imageLoad (ssaoBlurredImage, globalThread).r;
|
||||
fragColor *= ssaoVal;
|
||||
|
||||
// store result into result image
|
||||
imageStore(targetImage, ivec2(gl_GlobalInvocationID.xy), vec4(fragColor.rgb, 1.0f));
|
||||
//imageStore(targetImage, ivec2(gl_GlobalInvocationID.xy), vec4(ssaoVal.rrr, 1.0f));
|
||||
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: DeferredComposite_CS
|
||||
ID: 45072428
|
||||
Type: 2
|
|
@ -0,0 +1,167 @@
|
|||
//#version 450
|
||||
//
|
||||
//layout(local_size_x = 16, local_size_y = 16) in;
|
||||
//layout(set = 4, binding = 0, rgba8) uniform image2D targetImage;
|
||||
//
|
||||
//
|
||||
//void main()
|
||||
//{
|
||||
// ivec2 imageSize = imageSize (targetImage);
|
||||
//
|
||||
// if (gl_GlobalInvocationID.x >= imageSize.x && gl_GlobalInvocationID.y >= imageSize.y)
|
||||
// return;
|
||||
//
|
||||
// // load the image
|
||||
// vec4 color = imageLoad (targetImage, ivec2 (gl_GlobalInvocationID));
|
||||
//
|
||||
// // get the average
|
||||
// float average = 0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b;
|
||||
//
|
||||
// // store result into result image
|
||||
// imageStore(targetImage, ivec2(gl_GlobalInvocationID), vec4(average, average, average, 1.0f));
|
||||
//
|
||||
//}
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
/* Start Header *****************************************************************/
|
||||
|
||||
/*! \file (e.g. kirsch.comp)
|
||||
|
||||
\author William Zheng, william.zheng, 60001906. Brandon Mak, brandon.hao 390003920.
|
||||
|
||||
\par william.zheng\@digipen.edu. brandon.hao\@digipen.edu.
|
||||
|
||||
\date Sept 20, 2022
|
||||
|
||||
\brief Copyright (C) 20xx DigiPen Institute of Technology.
|
||||
|
||||
Reproduction or disclosure of this file or its contents without the prior written consent of DigiPen Institute of Technology is prohibited. */
|
||||
|
||||
/* End Header *******************************************************************/
|
||||
|
||||
#version 450
|
||||
|
||||
#define MASK_WIDTH 3
|
||||
#define HALF_M_WIDTH MASK_WIDTH / 2
|
||||
#define SHM_WIDTH 18
|
||||
#define NUM_MASKS 8
|
||||
|
||||
layout(local_size_x = 16, local_size_y = 16) in;
|
||||
layout(set = 4, binding = 0, rgba8) uniform image2D inputImage;
|
||||
layout(set = 4, binding = 1, rgba8) uniform image2D resultImage;
|
||||
|
||||
const float kirsch[8][3][3] = {
|
||||
{
|
||||
{5, 5, 5},
|
||||
{-3, 0, -3}, /*rotation 1 */
|
||||
{-3, -3, -3}
|
||||
},
|
||||
{
|
||||
{5, 5, -3},
|
||||
{5, 0, -3}, /*rotation 2 */
|
||||
{-3, -3, -3}
|
||||
},
|
||||
{
|
||||
{5, -3, -3},
|
||||
{5, 0, -3}, /*rotation 3 */
|
||||
{5, -3, -3}
|
||||
},
|
||||
{
|
||||
{-3, -3, -3},
|
||||
{5, 0, -3}, /*rotation 4 */
|
||||
{5, 5, -3}
|
||||
},
|
||||
{
|
||||
{-3, -3, -3},
|
||||
{-3, 0, -3}, /*rotation 5 */
|
||||
{5, 5, 5}
|
||||
},
|
||||
{
|
||||
{-3, -3, -3},
|
||||
{-3, 0, 5}, /*rotation 6 */
|
||||
{-3, 5, 5}
|
||||
},
|
||||
{
|
||||
{-3, -3, 5},
|
||||
{-3, 0, 5}, /*rotation 7 */
|
||||
{-3, -3, 5}
|
||||
},
|
||||
{
|
||||
{-3, 5, 5},
|
||||
{-3, 0, 5}, /*rotation 8 */
|
||||
{-3, -3, -3}
|
||||
}
|
||||
};
|
||||
|
||||
vec3 GetImageValues(ivec2 uv, ivec2 inputImageSize)
|
||||
{
|
||||
if (uv.x >= 0 && uv.y >= 0 && uv.x < inputImageSize.x && uv.y < inputImageSize.y)
|
||||
{
|
||||
return imageLoad(inputImage, uv).rgb;
|
||||
}
|
||||
else
|
||||
return vec3(0.0f);
|
||||
}
|
||||
|
||||
//two extra row/col
|
||||
shared vec3 sData[16 + 2][16 + 2];
|
||||
|
||||
void main()
|
||||
{
|
||||
// convenient variables
|
||||
ivec3 globalThread = ivec3(gl_GlobalInvocationID);
|
||||
ivec3 localThread = ivec3(gl_LocalInvocationID);
|
||||
ivec2 inputImageSize = imageSize(inputImage);
|
||||
|
||||
// load shared memory
|
||||
ivec2 start = ivec2(gl_WorkGroupID) * ivec2(gl_WorkGroupSize) - ivec2(HALF_M_WIDTH);
|
||||
for (int i = localThread.x; i < SHM_WIDTH; i += int(gl_WorkGroupSize.x))
|
||||
{
|
||||
for (int j = localThread.y; j < SHM_WIDTH; j += int(gl_WorkGroupSize.y))
|
||||
{
|
||||
// get from source image (either real values or 0)
|
||||
vec3 sourceValue = GetImageValues(start + ivec2(i, j), inputImageSize);
|
||||
sData[i][j] = sourceValue;
|
||||
}
|
||||
}
|
||||
|
||||
// wait for shared memory to finish loading
|
||||
barrier();
|
||||
|
||||
// max (between all 8 masks)
|
||||
vec3 maxSum = vec3(0.0f);
|
||||
|
||||
// loop through all masks
|
||||
for (int i = 0; i < NUM_MASKS; ++i)
|
||||
{
|
||||
vec3 sum = vec3(0.0f);
|
||||
|
||||
// start of shared memory
|
||||
ivec2 shmStart = ivec2(localThread + HALF_M_WIDTH);
|
||||
for (int j = -1; j < HALF_M_WIDTH + 1; ++j)
|
||||
{
|
||||
for (int k = -1; k < HALF_M_WIDTH + 1; ++k)
|
||||
{
|
||||
// Perform convolution using shared_memory
|
||||
sum += sData[shmStart.x + j][shmStart.y + k] * kirsch[i][j + 1][k + 1];
|
||||
}
|
||||
}
|
||||
|
||||
// Get highest sum
|
||||
maxSum = max(sum, maxSum);
|
||||
}
|
||||
|
||||
// average the max sum
|
||||
maxSum = min(max(maxSum / 8, 0), 1.0f);
|
||||
|
||||
// store result into result image
|
||||
imageStore(resultImage, ivec2(gl_GlobalInvocationID.xy), vec4(maxSum, 1.0f));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: Kirsch_CS
|
||||
ID: 39301863
|
||||
Type: 2
|
|
@ -0,0 +1,67 @@
|
|||
//#version 450
|
||||
//
|
||||
//layout(local_size_x = 16, local_size_y = 16) in;
|
||||
//layout(set = 4, binding = 0, rgba8) uniform image2D targetImage;
|
||||
//
|
||||
//
|
||||
//void main()
|
||||
//{
|
||||
// ivec2 imageSize = imageSize (targetImage);
|
||||
//
|
||||
// if (gl_GlobalInvocationID.x >= imageSize.x && gl_GlobalInvocationID.y >= imageSize.y)
|
||||
// return;
|
||||
//
|
||||
// // load the image
|
||||
// vec4 color = imageLoad (targetImage, ivec2 (gl_GlobalInvocationID));
|
||||
//
|
||||
// // get the average
|
||||
// float average = 0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b;
|
||||
//
|
||||
// // store result into result image
|
||||
// imageStore(targetImage, ivec2(gl_GlobalInvocationID), vec4(average, average, average, 1.0f));
|
||||
//
|
||||
//}
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
/* Start Header *****************************************************************/
|
||||
|
||||
/*! \file (e.g. kirsch.comp)
|
||||
|
||||
\author William Zheng, william.zheng, 60001906. Brandon Mak, brandon.hao 390003920.
|
||||
|
||||
\par william.zheng\@digipen.edu. brandon.hao\@digipen.edu.
|
||||
|
||||
\date Sept 20, 2022
|
||||
|
||||
\brief Copyright (C) 20xx DigiPen Institute of Technology.
|
||||
|
||||
Reproduction or disclosure of this file or its contents without the prior written consent of DigiPen Institute of Technology is prohibited. */
|
||||
|
||||
/* End Header *******************************************************************/
|
||||
|
||||
#version 450
|
||||
|
||||
|
||||
layout(local_size_x = 16, local_size_y = 16) in;
|
||||
layout(set = 4, binding = 0, rgba8) uniform image2D inputImage;
|
||||
layout(set = 4, binding = 1, rgba8) uniform image2D targetImage;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
// convenient variables
|
||||
ivec2 globalThread = ivec2(gl_GlobalInvocationID);
|
||||
|
||||
vec3 color = imageLoad (inputImage, globalThread).rgb;
|
||||
|
||||
// store result into result image
|
||||
imageStore(targetImage, ivec2(gl_GlobalInvocationID.xy), vec4(color, 1.0f));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: PureCopy_CS
|
||||
ID: 34987209
|
||||
Type: 2
|
|
@ -0,0 +1,58 @@
|
|||
#version 450
|
||||
|
||||
#define BLUR_WIDTH 5
|
||||
#define BLUR_HALF_WIDTH BLUR_WIDTH / 2
|
||||
#define SHM_WIDTH BLUR_WIDTH + 16 - 1
|
||||
|
||||
layout(local_size_x = 16, local_size_y = 16) in;
|
||||
layout(set = 4, binding = 0, r8) uniform image2D ssaoImage;
|
||||
layout(set = 4, binding = 1, r8) uniform image2D ssaoBlurImage;
|
||||
|
||||
|
||||
float GetSSAOValue(ivec2 uv, ivec2 imageSize)
|
||||
{
|
||||
if (uv.x >= 0 && uv.y >= 0 && uv.x < imageSize.x && uv.y < imageSize.y)
|
||||
{
|
||||
return imageLoad (ssaoImage, uv).r;
|
||||
}
|
||||
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
shared float sharedPixels[16 + BLUR_WIDTH - 1][16 + BLUR_WIDTH - 1];
|
||||
|
||||
void main()
|
||||
{
|
||||
ivec2 globalThread = ivec2 (gl_GlobalInvocationID.xy);
|
||||
ivec2 localThread = ivec2 (gl_LocalInvocationID.xy);
|
||||
ivec2 inputImageSize = imageSize(ssaoImage);
|
||||
|
||||
// Load color into shared memory
|
||||
ivec2 start = ivec2 (gl_WorkGroupID) * ivec2 (gl_WorkGroupSize) - (BLUR_HALF_WIDTH);
|
||||
for (int i = localThread.x; i < SHM_WIDTH; i += int (gl_WorkGroupSize.x))
|
||||
{
|
||||
for (int j = localThread.y; j < SHM_WIDTH; j += int (gl_WorkGroupSize.y))
|
||||
{
|
||||
float value = GetSSAOValue (start + ivec2 (i, j), inputImageSize);
|
||||
sharedPixels[i][j] = value;
|
||||
}
|
||||
}
|
||||
|
||||
// wait for all shared memory to load
|
||||
barrier();
|
||||
|
||||
ivec2 shmStart = ivec2 (localThread + (BLUR_HALF_WIDTH));
|
||||
|
||||
float sum = 0;
|
||||
for (int i = -BLUR_HALF_WIDTH; i <= BLUR_HALF_WIDTH; ++i)
|
||||
{
|
||||
for (int j = -BLUR_HALF_WIDTH; j <= BLUR_HALF_WIDTH; ++j)
|
||||
{
|
||||
float sharedVal = sharedPixels[shmStart.x + i][shmStart.y + j];
|
||||
sum += sharedVal;
|
||||
}
|
||||
}
|
||||
|
||||
sum /= (BLUR_WIDTH * BLUR_WIDTH);
|
||||
imageStore(ssaoBlurImage, globalThread, vec4(sum.rrr, 1.0f));
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: SSAOBlur_CS
|
||||
ID: 39760835
|
||||
Type: 2
|
|
@ -0,0 +1,104 @@
|
|||
#version 450
|
||||
|
||||
const uint NUM_SAMPLES = 64;
|
||||
const uint NUM_ROTATIONS = 16;
|
||||
const int ROTATION_KERNEL_W = 4;
|
||||
const int ROTATION_KERNEL_H = 4;
|
||||
|
||||
// can perhaps pass in as push constant.
|
||||
const float RADIUS = 0.5f;
|
||||
const float BIAS = 0.025f;
|
||||
|
||||
layout(local_size_x = 16, local_size_y = 16) in;
|
||||
layout(set = 4, binding = 0, rgba32f) uniform image2D positions;
|
||||
layout(set = 4, binding = 1, rgba32f) uniform image2D normals;
|
||||
layout(set = 4, binding = 2, rgba32f) uniform image2D outputImage;
|
||||
|
||||
|
||||
// SSAO data
|
||||
layout(std430, set = 5, binding = 0) buffer SSAOData
|
||||
{
|
||||
vec4 samples[NUM_SAMPLES];
|
||||
|
||||
} ssaoData;
|
||||
|
||||
layout (set = 5, binding = 1) uniform sampler2D noiseTexture;
|
||||
|
||||
layout(set = 2, binding = 0) uniform CameraData
|
||||
{
|
||||
vec4 position;
|
||||
mat4 vpMat;
|
||||
mat4 viewMat;
|
||||
mat4 projMat;
|
||||
|
||||
} cameraData;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
// image size of the SSAO image
|
||||
ivec2 ssaoSize = imageSize (outputImage);
|
||||
|
||||
// global thread
|
||||
ivec2 globalThread = ivec2 (gl_GlobalInvocationID.xy);
|
||||
|
||||
// load all the necessary variables
|
||||
vec3 viewSpacePos = imageLoad (positions, globalThread).rgb;
|
||||
vec3 viewSpaceNormal = normalize (imageLoad (normals, globalThread).rgb);
|
||||
|
||||
// Get the noise dimension. This should be 4x4
|
||||
vec2 noiseDim = vec2 (textureSize(noiseTexture, 0));
|
||||
|
||||
// Get normlized thread UV coordinates
|
||||
vec2 threadUV = (vec2(globalThread)) / vec2(ssaoSize);
|
||||
vec2 noiseUVMult = vec2 (vec2(ssaoSize) / noiseDim);
|
||||
noiseUVMult *= threadUV;
|
||||
|
||||
// sample from the noise
|
||||
vec3 randomVec = texture(noiseTexture, noiseUVMult).rgb;
|
||||
|
||||
// Gram schmidt
|
||||
vec3 tangent = normalize (randomVec - (viewSpaceNormal * dot(viewSpaceNormal, randomVec)));
|
||||
vec3 bitangent = normalize (cross (tangent, viewSpaceNormal));
|
||||
|
||||
// matrix for tangent space to view space
|
||||
mat3 TBN = mat3(tangent, bitangent, viewSpaceNormal);
|
||||
|
||||
float occlusion = 0.0f;
|
||||
for (int i = 0; i < NUM_SAMPLES; ++i)
|
||||
{
|
||||
// We want to get a position at an offset from the view space position. Offset scaled by radius.
|
||||
vec3 displacementVector = TBN * ssaoData.samples[i].rgb;
|
||||
|
||||
// Why are we adding positions?
|
||||
displacementVector = viewSpacePos + displacementVector * RADIUS;
|
||||
|
||||
// Now we take that offset position and bring it to clip space
|
||||
vec4 offsetPos = vec4 (displacementVector, 1.0f);
|
||||
offsetPos = cameraData.projMat * offsetPos;
|
||||
|
||||
// then we do perspective division
|
||||
offsetPos.xyz /= offsetPos.w;
|
||||
|
||||
// and bring it from [-1, 1] to screen coordinates
|
||||
offsetPos.xyz = ((offsetPos.xyz * 0.5f) + 0.5f);
|
||||
offsetPos.xy *= vec2(ssaoSize.xy);
|
||||
|
||||
// Now we attempt to get a position at that point.
|
||||
float sampleDepth = imageLoad (positions, ivec2 (offsetPos.xy)).z;
|
||||
|
||||
// skip checks
|
||||
if (sampleDepth == 0.0f)
|
||||
continue;
|
||||
|
||||
// if sampled fragment is in front of current fragment, just occlude
|
||||
float rangeCheck = smoothstep (0.0f, 1.0f, RADIUS / abs (viewSpacePos.z - sampleDepth));
|
||||
occlusion += (sampleDepth <= displacementVector.z - BIAS ? 1.0f : 0.0f) * rangeCheck;
|
||||
}
|
||||
|
||||
occlusion = 1.0f - (occlusion / float(NUM_SAMPLES));
|
||||
|
||||
// store result into result image
|
||||
imageStore(outputImage, globalThread, occlusion.rrrr);
|
||||
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: SSAO_CS
|
||||
ID: 38430899
|
||||
Type: 2
|
|
@ -0,0 +1,50 @@
|
|||
#version 450
|
||||
#extension GL_ARB_separate_shader_objects : enable
|
||||
#extension GL_ARB_shading_language_420pack : enable
|
||||
#extension GL_EXT_nonuniform_qualifier : require
|
||||
|
||||
struct MatPropData
|
||||
{
|
||||
vec4 color;
|
||||
int textureIndex;
|
||||
float alpha;
|
||||
vec3 beta;
|
||||
};
|
||||
|
||||
layout(location = 0) in struct
|
||||
{
|
||||
vec4 vertPos; // location 0
|
||||
vec2 uv; // location = 1
|
||||
vec4 normal; // location = 2
|
||||
|
||||
} In;
|
||||
|
||||
// material stuff
|
||||
layout(location = 3) flat in struct
|
||||
{
|
||||
int materialIndex;
|
||||
uint eid;
|
||||
uint lightLayerIndex;
|
||||
} In2;
|
||||
|
||||
layout (set = 0, binding = 1) uniform sampler2D textures[]; // for textures (global)
|
||||
layout (std430, set = 3, binding = 0) buffer MaterialProperties // For materials
|
||||
{
|
||||
MatPropData data[];
|
||||
} MatProp;
|
||||
|
||||
layout(location = 0) out vec4 position;
|
||||
layout(location = 1) out uint outEntityID;
|
||||
layout(location = 2) out uint lightLayerIndices;
|
||||
layout(location = 3) out vec4 normals;
|
||||
layout(location = 4) out vec4 albedo;
|
||||
|
||||
void main()
|
||||
{
|
||||
position = In.vertPos;
|
||||
normals = In.normal;
|
||||
albedo = texture(textures[nonuniformEXT(MatProp.data[In2.materialIndex].textureIndex)], In.uv) * MatProp.data[In2.materialIndex].color;
|
||||
|
||||
outEntityID = In2.eid;
|
||||
lightLayerIndices = In2.lightLayerIndex;
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: TestCube_FS
|
||||
ID: 46377769
|
||||
Type: 2
|
|
@ -0,0 +1,63 @@
|
|||
#version 450
|
||||
#extension GL_KHR_vulkan_glsl : enable
|
||||
|
||||
//#include "ShaderDescriptorDefinitions.glsl"
|
||||
|
||||
|
||||
layout(location = 0) in vec3 aVertexPos;
|
||||
layout(location = 1) in vec2 aUV;
|
||||
layout(location = 2) in vec3 aNormal;
|
||||
layout(location = 3) in vec3 aTangent;
|
||||
layout(location = 4) in mat4 worldTransform;
|
||||
layout(location = 8) in uvec2 integerData;
|
||||
|
||||
|
||||
layout(location = 0) out struct
|
||||
{
|
||||
vec4 vertPos; // location 0
|
||||
vec2 uv; // location = 1
|
||||
vec4 normal; // location = 2
|
||||
|
||||
} Out;
|
||||
|
||||
// material stuff
|
||||
layout(location = 3) out struct
|
||||
{
|
||||
int materialIndex;
|
||||
uint eid;
|
||||
uint lightLayerIndex;
|
||||
|
||||
} Out2;
|
||||
|
||||
layout(set = 2, binding = 0) uniform CameraData
|
||||
{
|
||||
vec4 position;
|
||||
mat4 vpMat;
|
||||
mat4 viewMat;
|
||||
mat4 projMat;
|
||||
} cameraData;
|
||||
|
||||
void main()
|
||||
{
|
||||
Out2.materialIndex = gl_InstanceIndex;
|
||||
Out2.eid = integerData[0];
|
||||
Out2.lightLayerIndex = integerData[1];
|
||||
|
||||
// for transforming gBuffer position and normal data
|
||||
mat4 modelViewMat = cameraData.viewMat * worldTransform;
|
||||
|
||||
// gBuffer position will be in view space
|
||||
Out.vertPos = modelViewMat * vec4(aVertexPos, 1.0f);
|
||||
|
||||
// uvs for texturing in fragment shader
|
||||
Out.uv = aUV;
|
||||
|
||||
mat3 transposeInv = mat3 (transpose(inverse(modelViewMat)));
|
||||
|
||||
// normals are also in view space
|
||||
Out.normal.rgb = transposeInv * aNormal.rgb;
|
||||
Out.normal.rgb = normalize (Out.normal.rgb);
|
||||
|
||||
// clip space for rendering
|
||||
gl_Position = cameraData.vpMat * worldTransform * vec4 (aVertexPos, 1.0f);
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: TestCube_VS
|
||||
ID: 39210065
|
||||
Type: 2
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: TD_Checker_Base_Color
|
||||
ID: 51995224
|
||||
Type: 3
|
125
Dependencies.bat
125
Dependencies.bat
|
@ -7,35 +7,41 @@ echo "SHADE DEPENDENCIES (Default - All in 10 Seconds)"
|
|||
echo "A - All"
|
||||
echo "B - VMA"
|
||||
echo "C - msdf"
|
||||
echo "D - assimp"
|
||||
echo "E - ktx"
|
||||
echo "F - spdlog"
|
||||
echo "G - reactphysics3d"
|
||||
echo "H - imgui"
|
||||
echo "I - imguizmo"
|
||||
echo "J - imnodes"
|
||||
echo "K - tracy"
|
||||
echo "L - RTTR"
|
||||
echo "M - yamlcpp"
|
||||
echo "D - ModelCompiler"
|
||||
echo "E - spdlog"
|
||||
echo "F - reactphysics3d"
|
||||
echo "G - imgui"
|
||||
echo "H - imguizmo"
|
||||
echo "I - imnodes"
|
||||
echo "J - tracy"
|
||||
echo "K - RTTR"
|
||||
echo "L - yamlcpp"
|
||||
echo "M - SDL"
|
||||
echo "N - dotnet"
|
||||
echo "O - tinyddsloader"
|
||||
echo "P - fmod"
|
||||
echo ---------------------------------------------------
|
||||
echo.
|
||||
|
||||
choice /C ABCDEFGHIJKLM /T 10 /D A
|
||||
choice /C ABCDEFGHIJKLMNOP /T 10 /D A
|
||||
set _e=%ERRORLEVEL%
|
||||
|
||||
if %_e%==1 goto VMA
|
||||
if %_e%==2 goto VMA
|
||||
if %_e%==3 goto MSDF
|
||||
if %_e%==4 goto assimp
|
||||
if %_e%==5 goto ktx
|
||||
if %_e%==6 goto spdlog
|
||||
if %_e%==7 goto reactphysics3d
|
||||
if %_e%==8 goto imgui
|
||||
if %_e%==9 goto imguizmo
|
||||
if %_e%==10 goto imnodes
|
||||
if %_e%==11 goto tracy
|
||||
if %_e%==12 goto RTTR
|
||||
if %_e%==13 goto yamlcpp
|
||||
if %_e%==4 goto ModelCompiler
|
||||
if %_e%==5 goto spdlog
|
||||
if %_e%==6 goto reactphysics3d
|
||||
if %_e%==7 goto imgui
|
||||
if %_e%==8 goto imguizmo
|
||||
if %_e%==9 goto imnodes
|
||||
if %_e%==10 goto tracy
|
||||
if %_e%==11 goto RTTR
|
||||
if %_e%==12 goto yamlcpp
|
||||
if %_e%==13 goto SDL
|
||||
if %_e%==14 goto dotnet
|
||||
if %_e%==15 goto tinyddsloader
|
||||
if %_e%==16 goto fmod
|
||||
|
||||
:VMA
|
||||
echo -----------------------VMA----------------------------
|
||||
|
@ -47,66 +53,107 @@ if %_e%==2 (goto :done) else (goto :MSDF)
|
|||
echo -----------------------MSDF----------------------------
|
||||
rmdir "Dependencies/msdf" /S /Q
|
||||
git clone --recurse-submodules https://github.com/SHADE-DP/msdf-atlas-gen.git "Dependencies/msdf"
|
||||
if %_e%==3 (goto :done) else (goto :assimp)
|
||||
if %_e%==3 (goto :done) else (goto :ModelCompiler)
|
||||
|
||||
:assimp
|
||||
echo -----------------------assimp----------------------------
|
||||
rmdir "Dependencies/assimp" /S /Q
|
||||
git clone https://github.com/SHADE-DP/assimp.git "Dependencies/assimp"
|
||||
if %_e%==4 (goto :done) else (goto :ktx)
|
||||
:ModelCompiler
|
||||
echo -----------------------ModelCompiler----------------------------
|
||||
rmdir "Dependencies/ModelCompiler" /S /Q
|
||||
git clone https://github.com/SHADE-DP/ModelCompiler.git "Dependencies/ModelCompiler"
|
||||
git clone https://github.com/SHADE-DP/assimp.git "Dependencies/ModelCompiler/Dependencies/assimp"
|
||||
if %_e%==4 (goto :done) else (goto :spdlog)
|
||||
|
||||
:ktx
|
||||
rmdir "Dependencies/ktx" /S /Q
|
||||
echo -----------------------ktx----------------------------
|
||||
git clone https://github.com/SHADE-DP/ktx.git "Dependencies/ktx"
|
||||
if %_e%==5 (goto :done) else (goto :spdlog)
|
||||
@REM :ktx
|
||||
@REM rmdir "Dependencies/ktx" /S /Q
|
||||
@REM echo -----------------------ktx----------------------------
|
||||
@REM git clone https://github.com/SHADE-DP/ktx.git "Dependencies/ktx"
|
||||
@REM if %_e%==5 (goto :done) else (goto :spdlog)
|
||||
|
||||
:spdlog
|
||||
echo -----------------------spdlog----------------------------
|
||||
rmdir "Dependencies/spdlog" /S /Q
|
||||
git clone https://github.com/SHADE-DP/spdlog.git "Dependencies/spdlog"
|
||||
if %_e%==6 (goto :done) else (goto :reactphysics3d)
|
||||
if %_e%==5 (goto :done) else (goto :reactphysics3d)
|
||||
|
||||
:reactphysics3d
|
||||
echo -----------------------reactphysics3d----------------------------
|
||||
rmdir "Dependencies/reactphysics3d" /S /Q
|
||||
git clone https://github.com/SHADE-DP/reactphysics3d.git "Dependencies/reactphysics3d"
|
||||
if %_e%==7 (goto :done) else (goto :imgui)
|
||||
if %_e%==6 (goto :done) else (goto :imgui)
|
||||
|
||||
:imgui
|
||||
echo -----------------------imgui----------------------------
|
||||
rmdir "Dependencies/imgui" /S /Q
|
||||
git clone https://github.com/SHADE-DP/imgui.git "Dependencies/imgui"
|
||||
if %_e%==8 (goto :done) else (goto :imguizmo)
|
||||
if %_e%==7 (goto :done) else (goto :imguizmo)
|
||||
|
||||
:imguizmo
|
||||
echo -----------------------imguizmo----------------------------
|
||||
rmdir "Dependencies/imguizmo" /S /Q
|
||||
git clone https://github.com/SHADE-DP/ImGuizmo.git "Dependencies/imguizmo"
|
||||
if %_e%==9 (goto :done) else (goto :imnodes)
|
||||
if %_e%==8 (goto :done) else (goto :imnodes)
|
||||
|
||||
:imnodes
|
||||
echo -----------------------imnodes----------------------------
|
||||
rmdir "Dependencies/imnodes" /S /Q
|
||||
git clone https://github.com/SHADE-DP/imnodes.git "Dependencies/imnodes"
|
||||
if %_e%==10 (goto :done) else (goto :tracy)
|
||||
if %_e%==9 (goto :done) else (goto :tracy)
|
||||
|
||||
:tracy
|
||||
echo -----------------------tracy----------------------------
|
||||
rmdir "Dependencies/tracy" /S /Q
|
||||
git clone https://github.com/SHADE-DP/tracy.git "Dependencies/tracy"
|
||||
if %_e%==11 (goto :done) else (goto :RTTR)
|
||||
if %_e%==10 (goto :done) else (goto :RTTR)
|
||||
|
||||
:RTTR
|
||||
echo -----------------------RTTR----------------------------
|
||||
rmdir "Dependencies/RTTR" /S /Q
|
||||
git clone https://github.com/SHADE-DP/RTTR.git "Dependencies/RTTR"
|
||||
if %_e%==12 (goto :done) else (goto :yamlcpp)
|
||||
if %_e%==11 (goto :done) else (goto :yamlcpp)
|
||||
|
||||
:yamlcpp
|
||||
echo -----------------------yamlcpp----------------------------
|
||||
rmdir "Dependencies/yamlcpp" /S /Q
|
||||
git clone https://github.com/SHADE-DP/yaml-cpp.git "Dependencies/yamlcpp"
|
||||
if %_e%==12 (goto :done) else (goto :SDL)
|
||||
|
||||
:SDL
|
||||
echo -----------------------SDL----------------------------
|
||||
rmdir "Dependencies/SDL" /S /Q
|
||||
mkdir "Dependencies/SDL/include"
|
||||
mkdir "Dependencies/SDL/lib"
|
||||
powershell -Command "& {wget https://github.com/libsdl-org/SDL/releases/download/release-2.24.0/SDL2-devel-2.24.0-VC.zip -OutFile "Dependencies/SDL/SDL.zip"}"
|
||||
powershell -Command "& {Expand-Archive -LiteralPath Dependencies/SDL/SDL.zip -DestinationPath Dependencies/SDL/tmp}"
|
||||
robocopy "Dependencies/SDL/tmp/SDL2-2.24.0/lib/x64" "Dependencies/SDL/lib/" /ns /nfl /ndl /nc /njh
|
||||
robocopy "Dependencies/SDL/tmp/SDL2-2.24.0/include/" "Dependencies/SDL/include/" /ns /nfl /ndl /nc /njh
|
||||
rmdir "Dependencies/SDL/tmp/" /s /q
|
||||
powershell -Command "& {Remove-Item "Dependencies/SDL/SDL.zip"}"
|
||||
if %_e%==13 (goto :done) else (goto :dotnet)
|
||||
|
||||
:dotnet
|
||||
echo -----------------------dotnet----------------------------
|
||||
rmdir "Dependencies/dotnet" /S /Q
|
||||
mkdir "Dependencies/dotnet/include"
|
||||
mkdir "Dependencies/dotnet/bin"
|
||||
powershell -Command "& {wget https://raw.githubusercontent.com/dotnet/runtime/main/src/coreclr/hosts/inc/coreclrhost.h -OutFile "Dependencies/dotnet/include/coreclrhost.h"}"
|
||||
powershell -Command "& {wget https://download.visualstudio.microsoft.com/download/pr/8686fa48-b378-424e-908b-afbd66d6e120/2d75d5c3574fb5d917c5a3cd3f624287/dotnet-sdk-6.0.400-win-x64.zip -OutFile "Dependencies/dotnet/dotnet.zip"}"
|
||||
powershell -Command "& {Expand-Archive -LiteralPath Dependencies/dotnet/dotnet.zip -DestinationPath Dependencies/dotnet/tmp}"
|
||||
robocopy "Dependencies/dotnet/tmp/shared/Microsoft.NETCore.App/6.0.8/" "Dependencies/dotnet/bin/" *.dll /ns /nfl /ndl /nc /njh
|
||||
rmdir "Dependencies/dotnet/tmp/" /s /q
|
||||
del "Dependencies/dotnet/dotnet.zip"
|
||||
powershell -Command "& {Remove-Item "Dependencies/dotnet/dotnet.zip"}"
|
||||
if %_e%==14 (goto :done) else (goto :tinyddsloader)
|
||||
|
||||
|
||||
:tinyddsloader
|
||||
echo --------------------tinyddsloader-------------------------
|
||||
rmdir "Dependencies/tinyddsloader" /S /Q
|
||||
git clone https://github.com/SHADE-DP/tinyddsloader.git "Dependencies/tinyddsloader"
|
||||
if %_e%==15 (goto :done) else (goto :fmod)
|
||||
|
||||
:fmod
|
||||
echo --------------------fmod-------------------------
|
||||
rmdir "Dependencies/fmod" /S /Q
|
||||
git clone https://github.com/SHADE-DP/FMOD.git "Dependencies/fmod"
|
||||
|
||||
:done
|
||||
echo DONE!
|
||||
|
|
|
@ -1,15 +1,18 @@
|
|||
IncludeDir = {}
|
||||
IncludeDir["assimp"] = "%{wks.location}/Dependencies/assimp"
|
||||
IncludeDir["imgui"] = "%{wks.location}/Dependencies/imgui"
|
||||
IncludeDir["imguizmo"] = "%{wks.location}/Dependencies/imguizmo"
|
||||
IncludeDir["imnodes"] = "%{wks.location}/Dependencies/imnodes"
|
||||
IncludeDir["msdf_atlas_gen"] = "%{wks.location}/Dependencies/msdf"
|
||||
IncludeDir["msdfgen"] = "%{wks.location}/Dependencies/msdf/msdfgen"
|
||||
IncludeDir["spdlog"] = "%{wks.location}/Dependencies/spdlog"
|
||||
IncludeDir["tracy"] = "%{wks.location}/Dependencies/tracy"
|
||||
IncludeDir["VMA"] = "%{wks.location}/Dependencies/VMA"
|
||||
IncludeDir["yamlcpp"] = "%{wks.location}/Dependencies/yamlcpp/include"
|
||||
IncludeDir["RTTR"] = "%{wks.location}/Dependencies/RTTR"
|
||||
IncludeDir["ktx"] = "%{wks.location}/Dependencies/ktx"
|
||||
IncludeDir["reactphysics3d"] = "%{wks.location}/Dependencies/reactphysics3d"
|
||||
IncludeDir["ModelCompiler"] = "%{wks.location}\\Dependencies\\ModelCompiler"
|
||||
IncludeDir["imgui"] = "%{wks.location}\\Dependencies\\imgui"
|
||||
IncludeDir["imguizmo"] = "%{wks.location}\\Dependencies\\imguizmo"
|
||||
IncludeDir["imnodes"] = "%{wks.location}\\Dependencies\\imnodes"
|
||||
IncludeDir["msdf_atlas_gen"] = "%{wks.location}\\Dependencies\\msdf"
|
||||
IncludeDir["msdfgen"] = "%{wks.location}\\Dependencies\\msdf\\msdfgen"
|
||||
IncludeDir["spdlog"] = "%{wks.location}\\Dependencies\\spdlog"
|
||||
IncludeDir["tracy"] = "%{wks.location}\\Dependencies\\tracy"
|
||||
IncludeDir["VMA"] = "%{wks.location}\\Dependencies\\VMA"
|
||||
IncludeDir["yamlcpp"] = "%{wks.location}\\Dependencies\\yamlcpp\\include"
|
||||
IncludeDir["RTTR"] = "%{wks.location}\\Dependencies\\RTTR"
|
||||
IncludeDir["reactphysics3d"] = "%{wks.location}\\Dependencies\\reactphysics3d"
|
||||
IncludeDir["SDL"] = "%{wks.location}\\Dependencies\\SDL"
|
||||
IncludeDir["VULKAN"] = "$(VULKAN_SDK)"
|
||||
IncludeDir["dotnet"] = "%{wks.location}\\Dependencies\\dotnet"
|
||||
IncludeDir["tinyddsloader"] = "%{wks.location}\\Dependencies\\tinyddsloader"
|
||||
IncludeDir["fmod"] = "%{wks.location}\\Dependencies\\fmod"
|
Binary file not shown.
87
SHADE.sln
87
SHADE.sln
|
@ -1,87 +0,0 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SHADE_Application", "SHADE_Application\SHADE_Application.vcxproj", "{BDC70008-29DE-FE9D-7255-8ABFDEAACF25}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dependencies", "Dependencies", "{53E47842-3FC8-3998-A828-34EB942B241A}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImGui", "Dependencies\imgui\ImGui.vcxproj", "{C0FF640D-2C14-8DBE-F595-301E616989EF}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "Dependencies\msdf\msdfgen\freetype\freetype.vcxproj", "{89895BD8-7556-B6E3-9E6F-A48B8A9BEB71}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "msdf-atlas-gen", "Dependencies\msdf\msdf-atlas-gen.vcxproj", "{38BD587B-248B-4C81-0D1F-BDA7F98B28E6}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "msdfgen", "Dependencies\msdf\msdfgen\msdfgen.vcxproj", "{8900D8DD-F5DF-5679-FEF7-E14F6A56BDDA}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "reactphysics3d", "Dependencies\reactphysics3d\reactphysics3d.vcxproj", "{2ECAB41A-1A98-A820-032C-1947EF988485}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spdlog", "Dependencies\spdlog\spdlog.vcxproj", "{8EAD431C-7A4F-6EF2-630A-82464F4BF542}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "yaml-cpp", "Dependencies\yamlcpp\yaml-cpp.vcxproj", "{88F1A057-74BE-FB62-9DD7-E90A890331F1}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SHADE_Engine", "SHADE_Engine\SHADE_Engine.vcxproj", "{3F92E998-2BF5-783D-D47A-B1F3C0BC44C0}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{88F1A057-74BE-FB62-9DD7-E90A890331F1} = {88F1A057-74BE-FB62-9DD7-E90A890331F1}
|
||||
{8900D8DD-F5DF-5679-FEF7-E14F6A56BDDA} = {8900D8DD-F5DF-5679-FEF7-E14F6A56BDDA}
|
||||
{38BD587B-248B-4C81-0D1F-BDA7F98B28E6} = {38BD587B-248B-4C81-0D1F-BDA7F98B28E6}
|
||||
{2ECAB41A-1A98-A820-032C-1947EF988485} = {2ECAB41A-1A98-A820-032C-1947EF988485}
|
||||
{C0FF640D-2C14-8DBE-F595-301E616989EF} = {C0FF640D-2C14-8DBE-F595-301E616989EF}
|
||||
{8EAD431C-7A4F-6EF2-630A-82464F4BF542} = {8EAD431C-7A4F-6EF2-630A-82464F4BF542}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{BDC70008-29DE-FE9D-7255-8ABFDEAACF25}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BDC70008-29DE-FE9D-7255-8ABFDEAACF25}.Debug|x64.Build.0 = Debug|x64
|
||||
{BDC70008-29DE-FE9D-7255-8ABFDEAACF25}.Release|x64.ActiveCfg = Release|x64
|
||||
{BDC70008-29DE-FE9D-7255-8ABFDEAACF25}.Release|x64.Build.0 = Release|x64
|
||||
{C0FF640D-2C14-8DBE-F595-301E616989EF}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C0FF640D-2C14-8DBE-F595-301E616989EF}.Debug|x64.Build.0 = Debug|x64
|
||||
{C0FF640D-2C14-8DBE-F595-301E616989EF}.Release|x64.ActiveCfg = Release|x64
|
||||
{C0FF640D-2C14-8DBE-F595-301E616989EF}.Release|x64.Build.0 = Release|x64
|
||||
{89895BD8-7556-B6E3-9E6F-A48B8A9BEB71}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{89895BD8-7556-B6E3-9E6F-A48B8A9BEB71}.Debug|x64.Build.0 = Debug|x64
|
||||
{89895BD8-7556-B6E3-9E6F-A48B8A9BEB71}.Release|x64.ActiveCfg = Release|x64
|
||||
{89895BD8-7556-B6E3-9E6F-A48B8A9BEB71}.Release|x64.Build.0 = Release|x64
|
||||
{38BD587B-248B-4C81-0D1F-BDA7F98B28E6}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{38BD587B-248B-4C81-0D1F-BDA7F98B28E6}.Debug|x64.Build.0 = Debug|x64
|
||||
{38BD587B-248B-4C81-0D1F-BDA7F98B28E6}.Release|x64.ActiveCfg = Release|x64
|
||||
{38BD587B-248B-4C81-0D1F-BDA7F98B28E6}.Release|x64.Build.0 = Release|x64
|
||||
{8900D8DD-F5DF-5679-FEF7-E14F6A56BDDA}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{8900D8DD-F5DF-5679-FEF7-E14F6A56BDDA}.Debug|x64.Build.0 = Debug|x64
|
||||
{8900D8DD-F5DF-5679-FEF7-E14F6A56BDDA}.Release|x64.ActiveCfg = Release|x64
|
||||
{8900D8DD-F5DF-5679-FEF7-E14F6A56BDDA}.Release|x64.Build.0 = Release|x64
|
||||
{2ECAB41A-1A98-A820-032C-1947EF988485}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2ECAB41A-1A98-A820-032C-1947EF988485}.Debug|x64.Build.0 = Debug|x64
|
||||
{2ECAB41A-1A98-A820-032C-1947EF988485}.Release|x64.ActiveCfg = Release|x64
|
||||
{2ECAB41A-1A98-A820-032C-1947EF988485}.Release|x64.Build.0 = Release|x64
|
||||
{8EAD431C-7A4F-6EF2-630A-82464F4BF542}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{8EAD431C-7A4F-6EF2-630A-82464F4BF542}.Debug|x64.Build.0 = Debug|x64
|
||||
{8EAD431C-7A4F-6EF2-630A-82464F4BF542}.Release|x64.ActiveCfg = Release|x64
|
||||
{8EAD431C-7A4F-6EF2-630A-82464F4BF542}.Release|x64.Build.0 = Release|x64
|
||||
{88F1A057-74BE-FB62-9DD7-E90A890331F1}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{88F1A057-74BE-FB62-9DD7-E90A890331F1}.Debug|x64.Build.0 = Debug|x64
|
||||
{88F1A057-74BE-FB62-9DD7-E90A890331F1}.Release|x64.ActiveCfg = Release|x64
|
||||
{88F1A057-74BE-FB62-9DD7-E90A890331F1}.Release|x64.Build.0 = Release|x64
|
||||
{3F92E998-2BF5-783D-D47A-B1F3C0BC44C0}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3F92E998-2BF5-783D-D47A-B1F3C0BC44C0}.Debug|x64.Build.0 = Debug|x64
|
||||
{3F92E998-2BF5-783D-D47A-B1F3C0BC44C0}.Release|x64.ActiveCfg = Release|x64
|
||||
{3F92E998-2BF5-783D-D47A-B1F3C0BC44C0}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{C0FF640D-2C14-8DBE-F595-301E616989EF} = {53E47842-3FC8-3998-A828-34EB942B241A}
|
||||
{89895BD8-7556-B6E3-9E6F-A48B8A9BEB71} = {53E47842-3FC8-3998-A828-34EB942B241A}
|
||||
{38BD587B-248B-4C81-0D1F-BDA7F98B28E6} = {53E47842-3FC8-3998-A828-34EB942B241A}
|
||||
{8900D8DD-F5DF-5679-FEF7-E14F6A56BDDA} = {53E47842-3FC8-3998-A828-34EB942B241A}
|
||||
{2ECAB41A-1A98-A820-032C-1947EF988485} = {53E47842-3FC8-3998-A828-34EB942B241A}
|
||||
{8EAD431C-7A4F-6EF2-630A-82464F4BF542} = {53E47842-3FC8-3998-A828-34EB942B241A}
|
||||
{88F1A057-74BE-FB62-9DD7-E90A890331F1} = {53E47842-3FC8-3998-A828-34EB942B241A}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -1,121 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{BDC70008-29DE-FE9D-7255-8ABFDEAACF25}</ProjectGuid>
|
||||
<IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>SHADE_Application</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>bin\Debug_x86_64\SHADE_Application\</OutDir>
|
||||
<IntDir>bin-int\Debug_x86_64\SHADE_Application\</IntDir>
|
||||
<TargetName>SHADE_Application</TargetName>
|
||||
<TargetExt>.exe</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>bin\Release_x86_64\SHADE_Application\</OutDir>
|
||||
<IntDir>bin-int\Release_x86_64\SHADE_Application\</IntDir>
|
||||
<TargetName>SHADE_Application</TargetName>
|
||||
<TargetExt>.exe</TargetExt>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>SBpch.h</PrecompiledHeaderFile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\Dependencies\spdlog\include;..\SHADE_Engine\src;src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EntryPointSymbol>wWinMainCRTStartup</EntryPointSymbol>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>SBpch.h</PrecompiledHeaderFile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<PreprocessorDefinitions>_RELEASE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\Dependencies\spdlog\include;..\SHADE_Engine\src;src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<Optimization>Full</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EntryPointSymbol>wWinMainCRTStartup</EntryPointSymbol>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="src\Application\SBApplication.h" />
|
||||
<ClInclude Include="src\SBpch.h" />
|
||||
<ClInclude Include="src\Scenes\SBTestScene.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\Application\SBApplication.cpp" />
|
||||
<ClCompile Include="src\SBpch.cpp">
|
||||
<PrecompiledHeader>Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\Scenes\SBTestScene.cpp" />
|
||||
<ClCompile Include="src\WinMain.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\SHADE_Engine\SHADE_Engine.vcxproj">
|
||||
<Project>{3F92E998-2BF5-783D-D47A-B1F3C0BC44C0}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
|
@ -1,30 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Application">
|
||||
<UniqueIdentifier>{D9DE78AF-4594-F1A4-CE88-EB7B3A3DE8A8}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Scenes">
|
||||
<UniqueIdentifier>{86EEB3D0-7290-DEA6-5B4B-F2FA478C65F7}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="src\Application\SBApplication.h">
|
||||
<Filter>Application</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\SBpch.h" />
|
||||
<ClInclude Include="src\Scenes\SBTestScene.h">
|
||||
<Filter>Scenes</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\Application\SBApplication.cpp">
|
||||
<Filter>Application</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\SBpch.cpp" />
|
||||
<ClCompile Include="src\Scenes\SBTestScene.cpp">
|
||||
<Filter>Scenes</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\WinMain.cpp" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,9 +1,9 @@
|
|||
project "SHADE_Application"
|
||||
kind "WindowedApp"
|
||||
language "C++"
|
||||
cppdialect "C++latest"
|
||||
targetdir ("bin/" .. outputdir .. "/%{prj.name}")
|
||||
objdir ("bin-int/" .. outputdir .. "/%{prj.name}")
|
||||
cppdialect "C++20"
|
||||
targetdir (outputdir)
|
||||
objdir (interdir)
|
||||
systemversion "latest"
|
||||
pchheader "SBpch.h"
|
||||
pchsource "%{prj.location}/src/SBpch.cpp"
|
||||
|
@ -14,6 +14,7 @@ project "SHADE_Application"
|
|||
files
|
||||
{
|
||||
"%{prj.location}/src/**.h",
|
||||
"%{prj.location}/src/**.hpp",
|
||||
"%{prj.location}/src/**.c",
|
||||
"%{prj.location}/src/**.cpp",
|
||||
"%{prj.location}/src/**.glsl",
|
||||
|
@ -21,11 +22,27 @@ project "SHADE_Application"
|
|||
|
||||
includedirs
|
||||
{
|
||||
"%{IncludeDir.spdlog}/include",
|
||||
"../SHADE_Engine/src",
|
||||
"src"
|
||||
"src",
|
||||
"%{IncludeDir.dotnet}/include",
|
||||
"%{IncludeDir.SDL}/include",
|
||||
}
|
||||
|
||||
externalincludedirs
|
||||
{
|
||||
"%{IncludeDir.RTTR}\\include",
|
||||
"%{IncludeDir.fmod}/include",
|
||||
"%{IncludeDir.VULKAN}/Source/SPIRV-Reflect",
|
||||
"%{IncludeDir.VMA}/include",
|
||||
"%{IncludeDir.VULKAN}/include",
|
||||
"%{IncludeDir.spdlog}/include",
|
||||
"%{IncludeDir.tinyddsloader}",
|
||||
"%{IncludeDir.reactphysics3d}\\include",
|
||||
"%{IncludeDir.yamlcpp}"
|
||||
}
|
||||
|
||||
externalwarnings "Off"
|
||||
|
||||
flags
|
||||
{
|
||||
"MultiProcessorCompile"
|
||||
|
@ -33,19 +50,47 @@ project "SHADE_Application"
|
|||
|
||||
links
|
||||
{
|
||||
"SHADE_Engine"
|
||||
"SHADE_Engine",
|
||||
"SHADE_Managed",
|
||||
"yaml-cpp",
|
||||
"SDL2.lib",
|
||||
"SDL2main.lib"
|
||||
}
|
||||
|
||||
postbuildcommands
|
||||
libdirs
|
||||
{
|
||||
"%{IncludeDir.spdlog}/lib",
|
||||
"%{IncludeDir.SDL}/lib"
|
||||
}
|
||||
|
||||
defines
|
||||
{
|
||||
"NOMINMAX"
|
||||
}
|
||||
|
||||
disablewarnings
|
||||
{
|
||||
"4251",
|
||||
"26812",
|
||||
"26439",
|
||||
"26451",
|
||||
"26437",
|
||||
"4275",
|
||||
"4635"
|
||||
}
|
||||
|
||||
linkoptions { "-IGNORE:4006" }
|
||||
|
||||
warnings 'Extra'
|
||||
|
||||
filter "configurations:Debug"
|
||||
symbols "On"
|
||||
defines {"_DEBUG"}
|
||||
defines {"_DEBUG", "SHEDITOR"}
|
||||
|
||||
filter "configurations:Release"
|
||||
optimize "On"
|
||||
defines{"_RELEASE"}
|
||||
defines{"_RELEASE", "SHEDITOR"}
|
||||
|
||||
filter "configurations:Publish"
|
||||
optimize "On"
|
||||
defines{"_RELEASE", "_PUBLISH"}
|
||||
|
|
|
@ -1,16 +1,53 @@
|
|||
#include "SBpch.h"
|
||||
#include "SBApplication.h"
|
||||
#include "ECS_Base/Managers/SHSystemManager.h"
|
||||
|
||||
//#define SHEDITOR
|
||||
#ifdef SHEDITOR
|
||||
#include "Editor/SHEditor.h"
|
||||
#include "Scenes/SBEditorScene.h"
|
||||
//#include "Scenes/SBEditorScene.h"
|
||||
#endif // SHEDITOR
|
||||
|
||||
#include "Tools/SHLogger.h"
|
||||
#include "Tools/SHFileUtilties.h"
|
||||
|
||||
#include <chrono>
|
||||
#include <ratio>
|
||||
#include <ctime>
|
||||
#include <SDL.h>
|
||||
|
||||
|
||||
#include "Graphics/MiddleEnd/Meshes/SHPrimitiveGenerator.h"
|
||||
|
||||
// Managers
|
||||
#include "ECS_Base/Managers/SHEntityManager.h"
|
||||
#include "Scene/SHSceneManager.h"
|
||||
|
||||
// Systems
|
||||
#include "AudioSystem/SHAudioSystem.h"
|
||||
#include "Camera/SHCameraSystem.h"
|
||||
#include "FRC/SHFramerateController.h"
|
||||
#include "Graphics/MiddleEnd/Interface/SHDebugDrawSystem.h"
|
||||
#include "Input/SHInputManager.h"
|
||||
#include "Math/Transform/SHTransformSystem.h"
|
||||
#include "Physics/System/SHPhysicsSystem.h"
|
||||
#include "Physics/System/SHPhysicsDebugDrawSystem.h"
|
||||
#include "Scripting/SHScriptEngine.h"
|
||||
|
||||
// Components
|
||||
#include "Graphics/MiddleEnd/Interface/SHRenderable.h"
|
||||
#include "Math/Transform/SHTransformComponent.h"
|
||||
|
||||
#include "Scenes/SBTestScene.h"
|
||||
|
||||
#include "Assets/SHAssetManager.h"
|
||||
#include "Scenes/SBMainScene.h"
|
||||
#include "Serialization/Configurations/SHConfigurationManager.h"
|
||||
|
||||
#include "Tools/SHLogger.h"
|
||||
#include "Tools/SHDebugDraw.h"
|
||||
|
||||
using namespace SHADE;
|
||||
|
||||
namespace Sandbox
|
||||
{
|
||||
|
@ -19,37 +56,139 @@ namespace Sandbox
|
|||
(
|
||||
_In_ HINSTANCE hInstance,
|
||||
_In_opt_ HINSTANCE hPrevInstance,
|
||||
_In_ LPWSTR lpCmdLine,
|
||||
_In_ LPWSTR lpCmdLine,
|
||||
_In_ INT nCmdShow
|
||||
)
|
||||
{
|
||||
SHLOG_TITLE("Initialising SBApplication")
|
||||
// Set working directory
|
||||
SHFileUtilities::SetWorkDirToExecDir();
|
||||
WindowData wndData{};
|
||||
auto& appConfig = SHConfigurationManager::LoadApplicationConfig(&wndData);
|
||||
window.Create(hInstance, hPrevInstance, lpCmdLine, nCmdShow, wndData);
|
||||
|
||||
window.Create(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
|
||||
// Create Systems
|
||||
|
||||
SHSystemManager::CreateSystem<SHScriptEngine>();
|
||||
SHSystemManager::CreateSystem<SHTransformSystem>();
|
||||
SHSystemManager::CreateSystem<SHPhysicsSystem>();
|
||||
SHSystemManager::CreateSystem<SHPhysicsDebugDrawSystem>();
|
||||
|
||||
#ifdef SHEDITOR
|
||||
#else
|
||||
#endif
|
||||
SHSystemManager::CreateSystem<SHAudioSystem>();
|
||||
SHSystemManager::CreateSystem<SHCameraSystem>();
|
||||
|
||||
|
||||
SHSystemManager::CreateSystem<SHGraphicsSystem>();
|
||||
SHGraphicsSystem* graphicsSystem = static_cast<SHGraphicsSystem*>(SHSystemManager::GetSystem<SHGraphicsSystem>());
|
||||
|
||||
// Link up SHDebugDraw
|
||||
SHSystemManager::CreateSystem<SHDebugDrawSystem>();
|
||||
SHDebugDraw::Init(SHSystemManager::GetSystem<SHDebugDrawSystem>());
|
||||
|
||||
#ifdef SHEDITOR
|
||||
SDL_Init(SDL_INIT_VIDEO);
|
||||
sdlWindow = SDL_CreateWindowFrom(window.GetHWND());
|
||||
SHSystemManager::CreateSystem<SHEditor>();
|
||||
if(auto editor = SHSystemManager::GetSystem<SHEditor>())
|
||||
{
|
||||
editor->SetSDLWindow(sdlWindow);
|
||||
editor->SetSHWindow(&window);
|
||||
}
|
||||
#endif
|
||||
|
||||
// Create Routines
|
||||
SHSystemManager::RegisterRoutine<SHScriptEngine, SHScriptEngine::FrameSetUpRoutine>();
|
||||
SHSystemManager::RegisterRoutine<SHScriptEngine, SHScriptEngine::UpdateRoutine>();
|
||||
SHSystemManager::RegisterRoutine<SHScriptEngine, SHScriptEngine::LateUpdateRoutine>();
|
||||
SHSystemManager::RegisterRoutine<SHScriptEngine, SHScriptEngine::FrameCleanUpRoutine>();
|
||||
|
||||
SHSystemManager::RegisterRoutine<SHTransformSystem, SHTransformSystem::TransformPostLogicUpdate>();
|
||||
|
||||
SHSystemManager::RegisterRoutine<SHPhysicsSystem, SHPhysicsSystem::PhysicsPreUpdate>();
|
||||
SHSystemManager::RegisterRoutine<SHPhysicsSystem, SHPhysicsSystem::PhysicsFixedUpdate>();
|
||||
SHSystemManager::RegisterRoutine<SHPhysicsSystem, SHPhysicsSystem::PhysicsPostUpdate>();
|
||||
|
||||
SHSystemManager::RegisterRoutine<SHPhysicsDebugDrawSystem, SHPhysicsDebugDrawSystem::PhysicsDebugDrawRoutine>();
|
||||
|
||||
SHSystemManager::RegisterRoutine<SHTransformSystem, SHTransformSystem::TransformPostPhysicsUpdate>();
|
||||
SHSystemManager::RegisterRoutine<SHDebugDrawSystem, SHDebugDrawSystem::ProcessPointsRoutine>();
|
||||
|
||||
SHSystemManager::RegisterRoutine<SHScriptEngine, SHScriptEngine::GizmosDrawRoutine>();
|
||||
SHSystemManager::RegisterRoutine<SHGraphicsSystem, SHGraphicsSystem::BatcherDispatcherRoutine>();
|
||||
SHSystemManager::RegisterRoutine<SHGraphicsSystem, SHGraphicsSystem::BeginRoutine>();
|
||||
|
||||
//SHSystemManager::RegisterRoutine<SHCameraSystem, SHCameraSystem::EditorCameraUpdate>();
|
||||
SHSystemManager::RegisterRoutine<SHCameraSystem, SHCameraSystem::CameraSystemUpdate>();
|
||||
|
||||
#ifdef SHEDITOR
|
||||
SHSystemManager::RegisterRoutine<SHEditor, SHEditor::EditorRoutine>();
|
||||
#endif
|
||||
|
||||
SHSystemManager::RegisterRoutine<SHGraphicsSystem, SHGraphicsSystem::RenderRoutine>();
|
||||
SHSystemManager::RegisterRoutine<SHGraphicsSystem, SHGraphicsSystem::EndRoutine>();
|
||||
|
||||
SHComponentManager::CreateComponentSparseSet<SHRigidBodyComponent>();
|
||||
SHComponentManager::CreateComponentSparseSet<SHColliderComponent>();
|
||||
SHComponentManager::CreateComponentSparseSet<SHTransformComponent>();
|
||||
SHComponentManager::CreateComponentSparseSet<SHRenderable>();
|
||||
//SHComponentManager::CreateComponentSparseSet<SHCameraComponent>();
|
||||
|
||||
SHAssetManager::Load();
|
||||
|
||||
|
||||
SHSystemManager::RegisterRoutine<SHAudioSystem, SHAudioSystem::AudioRoutine>();
|
||||
|
||||
// Set up graphics system and windows
|
||||
graphicsSystem->SetWindow(&window);
|
||||
|
||||
SHSystemManager::Init();
|
||||
|
||||
SHSceneManager::InitSceneManager<SBMainScene>(appConfig.startingSceneID);
|
||||
|
||||
SHFrameRateController::UpdateFRC();
|
||||
|
||||
// Link up SHDebugDraw
|
||||
SHDebugDraw::Init(SHSystemManager::GetSystem<SHDebugDrawSystem>());
|
||||
}
|
||||
|
||||
void SBApplication::Update(void)
|
||||
{
|
||||
SHGraphicsSystem* graphicsSystem = SHADE::SHSystemManager::GetSystem<SHGraphicsSystem>();
|
||||
SHEditor* editor = SHADE::SHSystemManager::GetSystem<SHEditor>();
|
||||
//TODO: Change true to window is open
|
||||
while (!window.WindowShouldClose())
|
||||
{
|
||||
#ifdef SHEDITOR
|
||||
#else
|
||||
#endif
|
||||
SHFrameRateController::UpdateFRC();
|
||||
SHInputManager::UpdateInput(SHFrameRateController::GetRawDeltaTime());
|
||||
SHSceneManager::UpdateSceneManager();
|
||||
#ifdef SHEDITOR
|
||||
if(editor->editorState == SHEditor::State::PLAY)
|
||||
SHSceneManager::SceneUpdate(0.016f);
|
||||
#endif
|
||||
SHSystemManager::RunRoutines(editor->editorState != SHEditor::State::PLAY, 0.016f);
|
||||
editor->PollPicking();
|
||||
|
||||
static bool drawColliders = false;
|
||||
if (SHInputManager::GetKeyDown(SHInputManager::SH_KEYCODE::F10))
|
||||
{
|
||||
drawColliders = !drawColliders;
|
||||
SHSystemManager::GetSystem<SHPhysicsDebugDrawSystem>()->SetDebugDrawFlag(SHPhysicsDebugDrawSystem::DebugDrawFlags::COLLIDER, drawColliders);
|
||||
}
|
||||
}
|
||||
// Finish all graphics jobs first
|
||||
graphicsSystem->AwaitGraphicsExecution();
|
||||
}
|
||||
|
||||
|
||||
void SBApplication::Exit(void)
|
||||
{
|
||||
#ifdef SHEDITOR
|
||||
#else
|
||||
#endif
|
||||
#ifdef SHEDITOR
|
||||
SDL_DestroyWindow(sdlWindow);
|
||||
SDL_Quit();
|
||||
#endif
|
||||
|
||||
SHSceneManager::Exit();
|
||||
SHSystemManager::Exit();
|
||||
SHAssetManager::Exit();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#ifndef SB_APPLICATION_H
|
||||
#define SB_APPLICATION_H
|
||||
#include <Graphics/Windowing/SHWindow.h>
|
||||
#include "Graphics/MiddleEnd/Interface/SHGraphicsSystem.h"
|
||||
#include <SDL_video.h>
|
||||
//using namespace SHADE;
|
||||
|
||||
namespace Sandbox
|
||||
|
@ -9,6 +11,7 @@ namespace Sandbox
|
|||
{
|
||||
private:
|
||||
SHADE::SHWindow window;
|
||||
SDL_Window* sdlWindow;
|
||||
//SHAppConfig config;
|
||||
public:
|
||||
SBApplication() = default;
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
#include "SBpch.h"
|
||||
#include "SBMainScene.h"
|
||||
|
||||
#include "ECS_Base/Managers/SHSystemManager.h"
|
||||
#include "Graphics/MiddleEnd/Meshes/SHPrimitiveGenerator.h"
|
||||
#include "ECS_Base/Managers/SHEntityManager.h"
|
||||
#include "Graphics/MiddleEnd/Interface/SHRenderable.h"
|
||||
#include "Scene/SHSceneManager.h"
|
||||
#include "Graphics/MiddleEnd/Interface/SHGraphicsSystem.h"
|
||||
#include "Scripting/SHScriptEngine.h"
|
||||
#include "Math/Transform/SHTransformComponent.h"
|
||||
#include "Graphics/MiddleEnd/Interface/SHMaterialInstance.h"
|
||||
#include "Physics/Interface/SHRigidBodyComponent.h"
|
||||
#include "Physics/Interface/SHColliderComponent.h"
|
||||
#include "Graphics/MiddleEnd/Lights/SHLightComponent.h"
|
||||
|
||||
#include "Assets/SHAssetManager.h"
|
||||
#include "Camera/SHCameraComponent.h"
|
||||
#include "Resource/SHResourceManager.h"
|
||||
#include "Serialization/SHSerialization.h"
|
||||
|
||||
using namespace SHADE;
|
||||
|
||||
namespace Sandbox
|
||||
{
|
||||
|
||||
void SBMainScene::WindowFocusFunc([[maybe_unused]] void* window, int focused)
|
||||
{
|
||||
if (focused)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
void SBMainScene::Load()
|
||||
{
|
||||
}
|
||||
|
||||
void SBMainScene::Init()
|
||||
{
|
||||
sceneName = SHSerialization::DeserializeSceneFromFile(sceneAssetID);
|
||||
}
|
||||
|
||||
void SBMainScene::Update(float dt)
|
||||
{
|
||||
}
|
||||
|
||||
void SBMainScene::Render()
|
||||
{
|
||||
}
|
||||
|
||||
void SBMainScene::Unload()
|
||||
{
|
||||
}
|
||||
|
||||
void SBMainScene::Free()
|
||||
{
|
||||
//SHSerialization::SerializeScene("resources/scenes/Scene01.SHADE");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
#pragma once
|
||||
|
||||
#include "Scene/SHScene.h"
|
||||
#include "Scene/SHSceneManager.h"
|
||||
|
||||
namespace Sandbox
|
||||
{
|
||||
class SBMainScene : public SHADE::SHScene
|
||||
{
|
||||
private:
|
||||
EntityID camera;
|
||||
EntityID testObj;
|
||||
std::vector<EntityID> stressTestObjects;
|
||||
|
||||
public:
|
||||
virtual void Load();
|
||||
virtual void Init();
|
||||
virtual void Update(float dt);
|
||||
virtual void Render();
|
||||
virtual void Free();
|
||||
virtual void Unload();
|
||||
|
||||
//TODO: Change to new window DO IT IN CPP TOO
|
||||
void WindowFocusFunc(void* window, int focused);
|
||||
|
||||
SBMainScene(void) = default;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -1,14 +1,34 @@
|
|||
#include "SBpch.h"
|
||||
#include "SBpch.h"
|
||||
#include "SBTestScene.h"
|
||||
|
||||
#include "ECS_Base/Managers/SHSystemManager.h"
|
||||
#include "Graphics/MiddleEnd/Meshes/SHPrimitiveGenerator.h"
|
||||
#include "ECS_Base/Managers/SHEntityManager.h"
|
||||
#include "Graphics/MiddleEnd/Interface/SHRenderable.h"
|
||||
#include "Scene/SHSceneManager.h"
|
||||
#include "Graphics/MiddleEnd/Interface/SHGraphicsSystem.h"
|
||||
#include "Scripting/SHScriptEngine.h"
|
||||
#include "Math/Transform/SHTransformComponent.h"
|
||||
#include "Graphics/MiddleEnd/Interface/SHMaterialInstance.h"
|
||||
#include "Physics/Interface/SHRigidBodyComponent.h"
|
||||
#include "Physics/Interface/SHColliderComponent.h"
|
||||
#include "Graphics/MiddleEnd/Lights/SHLightComponent.h"
|
||||
|
||||
#include "Assets/SHAssetManager.h"
|
||||
#include "Camera/SHCameraComponent.h"
|
||||
#include "Math/SHColour.h"
|
||||
#include "Resource/SHResourceManager.h"
|
||||
#include "Graphics/MiddleEnd/Interface/SHDebugDrawSystem.h"
|
||||
#include "Tools/SHDebugDraw.h"
|
||||
|
||||
using namespace SHADE;
|
||||
|
||||
namespace Sandbox
|
||||
{
|
||||
|
||||
void SBTestScene::WindowFocusFunc([[maybe_unused]]void* window, int focused)
|
||||
void SBTestScene::WindowFocusFunc([[maybe_unused]] void* window, int focused)
|
||||
{
|
||||
if(focused)
|
||||
if (focused)
|
||||
{
|
||||
}
|
||||
else
|
||||
|
@ -21,16 +41,203 @@ namespace Sandbox
|
|||
}
|
||||
void SBTestScene::Init()
|
||||
{
|
||||
SHADE::SHGraphicsSystem* graphicsSystem = static_cast<SHADE::SHGraphicsSystem*>(SHADE::SHSystemManager::GetSystem<SHADE::SHGraphicsSystem>());
|
||||
// Create temp meshes
|
||||
const auto CUBE_MESH = SHADE::SHPrimitiveGenerator::Cube(*graphicsSystem);
|
||||
|
||||
//Test Racoon mesh
|
||||
std::vector<Handle<SHMesh>> handles;
|
||||
std::vector<Handle<SHTexture>> texHandles;
|
||||
for (const auto& asset : SHAssetManager::GetAllAssets())
|
||||
{
|
||||
switch (asset.type)
|
||||
{
|
||||
case AssetType::MESH:
|
||||
if (asset.name == "Raccoon")
|
||||
handles.emplace_back(SHResourceManager::LoadOrGet<SHMesh>(asset.id));
|
||||
break;
|
||||
case AssetType::TEXTURE:
|
||||
if (asset.name == "RaccoonPreTexturedVer1_Base9")
|
||||
texHandles.emplace_back(SHResourceManager::LoadOrGet<SHTexture>(asset.id));
|
||||
break;
|
||||
}
|
||||
}
|
||||
SHResourceManager::FinaliseChanges();
|
||||
|
||||
// Create Materials
|
||||
auto baseRaccoonMat = graphicsSystem->AddOrGetBaseMaterialInstance();
|
||||
auto baseRaccoonMatInstant = graphicsSystem->AddMaterialInstanceCopy(baseRaccoonMat);
|
||||
baseRaccoonMatInstant->SetProperty("data.color", SHVec4(1.0f, 1.0f, 1.0f, 1.0f));
|
||||
baseRaccoonMatInstant->SetProperty("data.textureIndex", 0);
|
||||
baseRaccoonMatInstant->SetProperty("data.alpha", 0.1f);
|
||||
|
||||
auto baseFloorMatInstant = graphicsSystem->AddMaterialInstanceCopy(baseRaccoonMat);
|
||||
baseFloorMatInstant->SetProperty("data.color", SHVec4(1.0f, 1.0f, 1.0f, 1.0f));
|
||||
baseFloorMatInstant->SetProperty("data.textureIndex", 0);
|
||||
baseFloorMatInstant->SetProperty("data.alpha", 0.1f);
|
||||
|
||||
auto dummy = SHEntityManager::CreateEntity<>();
|
||||
|
||||
auto floor = SHEntityManager::CreateEntity<SHTransformComponent,SHRenderable, SHRigidBodyComponent, SHColliderComponent>();
|
||||
auto& floorRenderable = *SHComponentManager::GetComponent_s<SHRenderable>(floor);
|
||||
auto& floorTransform = *SHComponentManager::GetComponent_s<SHTransformComponent>(floor);
|
||||
auto& floorRigidBody = *SHComponentManager::GetComponent_s<SHRigidBodyComponent>(floor);
|
||||
auto& floorCollider = *SHComponentManager::GetComponent_s<SHColliderComponent>(floor);
|
||||
|
||||
floorRenderable.SetMesh(CUBE_MESH);
|
||||
floorRenderable.SetMaterial(graphicsSystem->GetDefaultMaterialInstance());
|
||||
|
||||
floorTransform.SetWorldScale({ 17.5f, 0.5f, 17.5f });
|
||||
floorTransform.SetWorldPosition({ 0.0f, -3.0f, -5.0f });
|
||||
|
||||
floorRigidBody.SetType(SHRigidBodyComponent::Type::STATIC);
|
||||
|
||||
floorCollider.AddBoundingBox();
|
||||
|
||||
// Create blank entity with a script
|
||||
//testObj = SHADE::SHEntityManager::CreateEntity<SHRenderable, SHTransformComponent>();
|
||||
//auto& testObjRenderable = *SHComponentManager::GetComponent<SHRenderable>(testObj);
|
||||
//testObjRenderable.Mesh = CUBE_MESH;
|
||||
//testObjRenderable.SetMaterial(matInst);
|
||||
|
||||
//raccoon =======================================================================================================================
|
||||
auto racoon = SHEntityManager::CreateEntity<SHRenderable, SHTransformComponent, SHRigidBodyComponent, SHColliderComponent>(MAX_EID, "Player");
|
||||
auto& racoonRenderable = *SHComponentManager::GetComponent_s<SHRenderable>(racoon);
|
||||
auto& racoonTransform = *SHComponentManager::GetComponent_s<SHTransformComponent>(racoon);
|
||||
auto& racoonRigidBody = *SHComponentManager::GetComponent_s<SHRigidBodyComponent>(racoon);
|
||||
auto& racoonCollider = *SHComponentManager::GetComponent_s<SHColliderComponent>(racoon);
|
||||
|
||||
racoonRenderable.SetMesh(handles.front());
|
||||
racoonRenderable.SetMaterial(baseRaccoonMatInstant);
|
||||
|
||||
racoonTransform.SetWorldScale({ 2.0f, 2.0f, 2.0f });
|
||||
racoonTransform.SetWorldPosition({ -3.0f, -2.0f, -5.0f });
|
||||
|
||||
racoonCollider.AddBoundingBox();
|
||||
racoonCollider.GetCollisionShape(0).SetPositionOffset(SHVec3(0.0f,0.5f,0.0f));
|
||||
racoonCollider.GetCollisionShape(0).SetBoundingBox(SHVec3(0.5f, 0.5f, 0.5f));
|
||||
|
||||
auto racoonItemLocation = SHEntityManager::CreateEntity<SHTransformComponent>();
|
||||
auto& racoonItemLocationTransform = *SHComponentManager::GetComponent_s<SHTransformComponent>(racoonItemLocation);
|
||||
SHSceneManager::GetCurrentSceneGraph().SetParent(racoonItemLocation, racoon);
|
||||
|
||||
auto racoonCamera = SHEntityManager::CreateEntity<SHTransformComponent>();
|
||||
SHSceneManager::GetCurrentSceneGraph().SetParent(racoonCamera, racoon);
|
||||
//================================================================================================================================
|
||||
|
||||
//item ===========================================================================================================================
|
||||
auto item = SHEntityManager::CreateEntity<SHRenderable, SHTransformComponent, SHRigidBodyComponent, SHColliderComponent>(MAX_EID, "item");
|
||||
auto& itemRenderable = *SHComponentManager::GetComponent_s<SHRenderable>(item);
|
||||
auto& itemTransform = *SHComponentManager::GetComponent_s<SHTransformComponent>(item);
|
||||
auto& itemRigidBody = *SHComponentManager::GetComponent_s<SHRigidBodyComponent>(item);
|
||||
auto& itemCollider = *SHComponentManager::GetComponent_s<SHColliderComponent>(item);
|
||||
|
||||
itemRenderable.SetMesh(handles.front());
|
||||
itemRenderable.SetMaterial(baseRaccoonMatInstant);
|
||||
|
||||
itemTransform.SetWorldScale({ 2.0f, 2.0f, 2.0f });
|
||||
itemTransform.SetWorldPosition({ 0.0f, -2.0f, -5.0f });
|
||||
|
||||
itemCollider.AddBoundingBox();
|
||||
itemCollider.AddBoundingBox(SHVec3(2.0f,2.0f,2.0f));
|
||||
itemCollider.GetCollisionShape(1).SetIsTrigger(true);
|
||||
|
||||
itemCollider.GetCollisionShape(0).SetPositionOffset(SHVec3(0.0f, 0.5f, 0.0f));
|
||||
itemCollider.GetCollisionShape(0).SetBoundingBox(SHVec3(0.5f, 0.5f, 0.5f));
|
||||
|
||||
itemCollider.GetCollisionShape(1).SetPositionOffset(SHVec3(0.0f, 0.5f, 0.0f));
|
||||
itemCollider.GetCollisionShape(1).SetBoundingBox(SHVec3(1.0f, 1.0f, 1.0f));
|
||||
|
||||
itemRigidBody.SetInterpolate(false);
|
||||
itemRigidBody.SetFreezeRotationX(true);
|
||||
itemRigidBody.SetFreezeRotationY(true);
|
||||
itemRigidBody.SetFreezeRotationZ(true);
|
||||
//================================================================================================================================
|
||||
|
||||
//AI =============================================================================================================================
|
||||
auto AI = SHEntityManager::CreateEntity<SHRenderable, SHTransformComponent, SHRigidBodyComponent, SHColliderComponent>(MAX_EID, "AI");
|
||||
auto& AIRenderable = *SHComponentManager::GetComponent_s<SHRenderable>(AI);
|
||||
auto& AITransform = *SHComponentManager::GetComponent_s<SHTransformComponent>(AI);
|
||||
auto& AIRigidBody = *SHComponentManager::GetComponent_s<SHRigidBodyComponent>(AI);
|
||||
auto& AICollider = *SHComponentManager::GetComponent_s<SHColliderComponent>(AI);
|
||||
|
||||
AIRenderable.SetMesh(handles.front());
|
||||
AIRenderable.SetMaterial(baseRaccoonMatInstant);
|
||||
|
||||
AITransform.SetWorldScale({ 2.0f, 2.0f, 2.0f });
|
||||
AITransform.SetWorldPosition({ -8.0f, -2.0f, 2.5f });
|
||||
|
||||
AICollider.AddBoundingBox();
|
||||
AICollider.GetCollisionShape(0).SetPositionOffset(SHVec3(0.0f, 0.5f, 0.0f));
|
||||
AICollider.GetCollisionShape(0).SetBoundingBox(SHVec3(0.5f, 0.5f, 0.5f));
|
||||
|
||||
AIRigidBody.SetInterpolate(false);
|
||||
AIRigidBody.SetFreezeRotationX(true);
|
||||
AIRigidBody.SetFreezeRotationY(true);
|
||||
AIRigidBody.SetFreezeRotationZ(true);
|
||||
//================================================================================================================================
|
||||
|
||||
SHADE::SHScriptEngine* scriptEngine = static_cast<SHADE::SHScriptEngine*>(SHADE::SHSystemManager::GetSystem<SHADE::SHScriptEngine>());
|
||||
scriptEngine->AddScript(racoon, "PlayerController");
|
||||
scriptEngine->AddScript(racoon, "PickAndThrow");
|
||||
scriptEngine->AddScript(racoonCamera, "ThirdPersonCamera");
|
||||
scriptEngine->AddScript(AI, "AIPrototype");
|
||||
scriptEngine->AddScript(item, "Item");
|
||||
|
||||
auto raccoonShowcase = SHEntityManager::CreateEntity<SHRenderable, SHTransformComponent>();
|
||||
auto& renderableShowcase = *SHComponentManager::GetComponent_s<SHRenderable>(raccoonShowcase);
|
||||
auto& transformShowcase = *SHComponentManager::GetComponent_s<SHTransformComponent>(raccoonShowcase);
|
||||
|
||||
renderableShowcase.SetMesh(handles.front());
|
||||
renderableShowcase.SetMaterial(baseRaccoonMatInstant);
|
||||
renderableShowcase.GetModifiableMaterial()->SetProperty("data.color", SHVec4(1.0f, 1.0f, 1.0f, 1.0f));
|
||||
renderableShowcase.GetModifiableMaterial()->SetProperty("data.alpha", 1.0f);
|
||||
renderableShowcase.GetModifiableMaterial()->SetProperty("data.textureIndex", 0);
|
||||
|
||||
transformShowcase.SetWorldPosition({ 3.0f, -1.0f, -1.0f });
|
||||
transformShowcase.SetLocalScale({ 5.0f, 5.0f, 5.0f });
|
||||
scriptEngine->AddScript(raccoonShowcase, "RaccoonShowcase");
|
||||
|
||||
SHComponentManager::AddComponent<SHCameraComponent>(0);
|
||||
SHComponentManager::AddComponent<SHLightComponent>(0);
|
||||
SHComponentManager::RemoveComponent <SHRigidBodyComponent>(0);
|
||||
SHComponentManager::RemoveComponent <SHColliderComponent>(0);
|
||||
|
||||
auto ambientLight = SHEntityManager::CreateEntity<SHLightComponent>();
|
||||
SHComponentManager::GetComponent<SHLightComponent>(ambientLight)->SetColor(SHColour::WHITE);
|
||||
SHComponentManager::GetComponent<SHLightComponent>(ambientLight)->SetStrength(0.25f);
|
||||
SHComponentManager::GetComponent<SHLightComponent>(ambientLight)->SetType(SH_LIGHT_TYPE::AMBIENT);
|
||||
}
|
||||
|
||||
void SBTestScene::Update(float dt)
|
||||
{
|
||||
(void)dt;
|
||||
static float rotation = 0.0f;
|
||||
SHVec3 direction{0.0f, 0.0f, 1.0f};
|
||||
direction = SHVec3::RotateY(direction, rotation);
|
||||
|
||||
auto* lightComp =SHComponentManager::GetComponent<SHLightComponent>(0);
|
||||
lightComp->SetDirection (direction);
|
||||
rotation += 0.005f;
|
||||
//auto& transform = *SHADE::SHComponentManager::GetComponent_s<SHADE::SHTransformComponent>(testObj);
|
||||
|
||||
//transform.SetWorldPosition({1.0f, 1.0f, -1.0f});
|
||||
//transform.SetWorldRotation(0.0f, 0.0f + rotation, 0.0f);
|
||||
//rotation += dt * 0.2f;
|
||||
|
||||
// Destroy entity if space is pressed
|
||||
if (GetKeyState(VK_SPACE) & 0x8000)
|
||||
{
|
||||
rotation = 0.0f;
|
||||
SHADE::SHScriptEngine* scriptEngine = static_cast<SHADE::SHScriptEngine*>(SHADE::SHSystemManager::GetSystem<SHADE::SHScriptEngine>());
|
||||
scriptEngine->RemoveAllScripts(testObj);
|
||||
}
|
||||
|
||||
SHDebugDraw::Cube(SHColour::CRIMSON, SHVec3(1.0f, 0.0f, 0.0f), SHVec3(1.0f, 1.0f, 1.0f));
|
||||
}
|
||||
|
||||
void SBTestScene::Render()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void SBTestScene::Unload()
|
||||
|
@ -41,8 +248,4 @@ namespace Sandbox
|
|||
{
|
||||
//SHSerialization::SerializeScene("resources/scenes/Scene01.SHADE");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -9,7 +9,8 @@ namespace Sandbox
|
|||
{
|
||||
private:
|
||||
EntityID camera;
|
||||
|
||||
EntityID testObj;
|
||||
std::vector<EntityID> stressTestObjects;
|
||||
|
||||
public:
|
||||
virtual void Load();
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue