summaryrefslogtreecommitdiff
path: root/engine-ocean/Resources
diff options
context:
space:
mode:
authorjjesswan <jessica_wan@brown.edu>2024-04-22 21:56:26 -0400
committerjjesswan <jessica_wan@brown.edu>2024-04-22 21:56:26 -0400
commita556b45abf18f1bd509daaf63b66b7d55e9fd291 (patch)
treebc9b8a2d184c12aee236e7f9f276a34b84ca552d /engine-ocean/Resources
parentcd7c76017a12bb548036571c1ff13e551369d06d (diff)
add engine version
Diffstat (limited to 'engine-ocean/Resources')
-rw-r--r--engine-ocean/Resources/Fonts/OpenSans.ttfbin0 -> 217360 bytes
-rw-r--r--engine-ocean/Resources/Images/amantia_loot.pngbin0 -> 13619 bytes
-rw-r--r--engine-ocean/Resources/Images/background.pngbin0 -> 10673 bytes
-rw-r--r--engine-ocean/Resources/Images/bamboo.pngbin0 -> 18008 bytes
-rw-r--r--engine-ocean/Resources/Images/bark.pngbin0 -> 12822969 bytes
-rw-r--r--engine-ocean/Resources/Images/body.pngbin0 -> 752393 bytes
-rw-r--r--engine-ocean/Resources/Images/close_icon.pngbin0 -> 57618 bytes
-rw-r--r--engine-ocean/Resources/Images/enterbutton.pngbin0 -> 11602 bytes
-rw-r--r--engine-ocean/Resources/Images/eyes.pngbin0 -> 59418 bytes
-rw-r--r--engine-ocean/Resources/Images/feet.pngbin0 -> 59422 bytes
-rw-r--r--engine-ocean/Resources/Images/foliage.pngbin0 -> 1931488 bytes
-rw-r--r--engine-ocean/Resources/Images/foliage1.pngbin0 -> 657825 bytes
-rw-r--r--engine-ocean/Resources/Images/grass.pngbin0 -> 757834 bytes
-rw-r--r--engine-ocean/Resources/Images/grass_texture.pngbin0 -> 20534 bytes
-rw-r--r--engine-ocean/Resources/Images/grass_texture2.pngbin0 -> 479575 bytes
-rw-r--r--engine-ocean/Resources/Images/hands.pngbin0 -> 59422 bytes
-rw-r--r--engine-ocean/Resources/Images/haori.pngbin0 -> 529270 bytes
-rw-r--r--engine-ocean/Resources/Images/hat.pngbin0 -> 88269 bytes
-rw-r--r--engine-ocean/Resources/Images/head.pngbin0 -> 394770 bytes
-rw-r--r--engine-ocean/Resources/Images/healthbar.pngbin0 -> 4709 bytes
-rw-r--r--engine-ocean/Resources/Images/inventory_bg.pngbin0 -> 213292 bytes
-rw-r--r--engine-ocean/Resources/Images/inventory_page.pngbin0 -> 338293 bytes
-rw-r--r--engine-ocean/Resources/Images/inventoryicon.pngbin0 -> 17040 bytes
-rw-r--r--engine-ocean/Resources/Images/lakebottom.pngbin0 -> 807538 bytes
-rw-r--r--engine-ocean/Resources/Images/meadow.pngbin0 -> 2539683 bytes
-rw-r--r--engine-ocean/Resources/Images/meadow_flower_map.pngbin0 -> 2230433 bytes
-rw-r--r--engine-ocean/Resources/Images/meadow_texture_atlas.pngbin0 -> 3676312 bytes
-rw-r--r--engine-ocean/Resources/Images/meadow_texture_atlas1.pngbin0 -> 2996377 bytes
-rw-r--r--engine-ocean/Resources/Images/mossyground.pngbin0 -> 8766302 bytes
-rw-r--r--engine-ocean/Resources/Images/mossywood.pngbin0 -> 110014 bytes
-rw-r--r--engine-ocean/Resources/Images/mouse profile.pngbin0 -> 101796 bytes
-rw-r--r--engine-ocean/Resources/Images/mouse.pngbin0 -> 116172 bytes
-rw-r--r--engine-ocean/Resources/Images/mouse_profile.pngbin0 -> 962437 bytes
-rw-r--r--engine-ocean/Resources/Images/mushroom.pngbin0 -> 2833245 bytes
-rw-r--r--engine-ocean/Resources/Images/mushroom_loot.pngbin0 -> 12356 bytes
-rw-r--r--engine-ocean/Resources/Images/nose.pngbin0 -> 87232 bytes
-rw-r--r--engine-ocean/Resources/Images/profileicon.pngbin0 -> 36478 bytes
-rw-r--r--engine-ocean/Resources/Images/profilepage.pngbin0 -> 44223 bytes
-rw-r--r--engine-ocean/Resources/Images/pupils.pngbin0 -> 176009 bytes
-rw-r--r--engine-ocean/Resources/Images/questicon.pngbin0 -> 26600 bytes
-rw-r--r--engine-ocean/Resources/Images/sample mouse color.pngbin0 -> 612615 bytes
-rw-r--r--engine-ocean/Resources/Images/settings_icon.pngbin0 -> 46238 bytes
-rw-r--r--engine-ocean/Resources/Images/skybox/back.pngbin0 -> 552369 bytes
-rw-r--r--engine-ocean/Resources/Images/skybox/back1.pngbin0 -> 1120111 bytes
-rw-r--r--engine-ocean/Resources/Images/skybox/bottom.pngbin0 -> 910014 bytes
-rw-r--r--engine-ocean/Resources/Images/skybox/front.pngbin0 -> 609574 bytes
-rw-r--r--engine-ocean/Resources/Images/skybox/hills2/back.pngbin0 -> 685944 bytes
-rw-r--r--engine-ocean/Resources/Images/skybox/hills2/bottom.pngbin0 -> 5356 bytes
-rw-r--r--engine-ocean/Resources/Images/skybox/hills2/front.pngbin0 -> 577542 bytes
-rw-r--r--engine-ocean/Resources/Images/skybox/hills2/left.pngbin0 -> 647227 bytes
-rw-r--r--engine-ocean/Resources/Images/skybox/hills2/right.pngbin0 -> 664344 bytes
-rw-r--r--engine-ocean/Resources/Images/skybox/hills2/top.pngbin0 -> 786971 bytes
-rw-r--r--engine-ocean/Resources/Images/skybox/hills2/up.pngbin0 -> 443906 bytes
-rw-r--r--engine-ocean/Resources/Images/skybox/left.pngbin0 -> 535208 bytes
-rw-r--r--engine-ocean/Resources/Images/skybox/right.pngbin0 -> 568843 bytes
-rw-r--r--engine-ocean/Resources/Images/skybox/top.pngbin0 -> 693955 bytes
-rw-r--r--engine-ocean/Resources/Images/snowymountain.pngbin0 -> 97906 bytes
-rw-r--r--engine-ocean/Resources/Images/sparkle.pngbin0 -> 14528 bytes
-rw-r--r--engine-ocean/Resources/Images/square.pngbin0 -> 263098 bytes
-rw-r--r--engine-ocean/Resources/Images/stone.pngbin0 -> 7943065 bytes
-rw-r--r--engine-ocean/Resources/Images/title.pngbin0 -> 10880705 bytes
-rw-r--r--engine-ocean/Resources/Images/water.pngbin0 -> 317500 bytes
-rw-r--r--engine-ocean/Resources/Images/waterDUDV.pngbin0 -> 578656 bytes
-rw-r--r--engine-ocean/Resources/Images/wind_flowmap.pngbin0 -> 173228 bytes
-rw-r--r--engine-ocean/Resources/Images/wind_flowmap1.pngbin0 -> 5252 bytes
-rw-r--r--engine-ocean/Resources/Meshes/floor.mtl12
-rw-r--r--engine-ocean/Resources/Meshes/grassfield_simple.mtl12
-rw-r--r--engine-ocean/Resources/Meshes/grasslandscape.mtl2
-rw-r--r--engine-ocean/Resources/Meshes/howl_field_background.mtl22
-rw-r--r--engine-ocean/Resources/Meshes/howl_field_water.mtl12
-rw-r--r--engine-ocean/Resources/Meshes/meadow_ground.mtl12
-rw-r--r--engine-ocean/Resources/Meshes/mouse2-3materials.mtl92
-rw-r--r--engine-ocean/Resources/Meshes/mouse2-4.mtl92
-rw-r--r--engine-ocean/Resources/Meshes/mushroom_1.mtl12
-rw-r--r--engine-ocean/Resources/Meshes/mushroom_2.mtl12
-rw-r--r--engine-ocean/Resources/Meshes/slope.mtl12
-rw-r--r--engine-ocean/Resources/Meshes/slopedground.mtl12
-rw-r--r--engine-ocean/Resources/Meshes/testnavmesh.mtl12
-rw-r--r--engine-ocean/Resources/Meshes/testnavmesh2.mtl12
-rw-r--r--engine-ocean/Resources/Meshes/testplane.mtl2
-rw-r--r--engine-ocean/Resources/Meshes/testslope.mtl12
-rw-r--r--engine-ocean/Resources/Shaders/InventoryShader.frag15
-rw-r--r--engine-ocean/Resources/Shaders/UIShader.frag29
-rw-r--r--engine-ocean/Resources/Shaders/UIShader.vert18
-rw-r--r--engine-ocean/Resources/Shaders/grass.frag22
-rw-r--r--engine-ocean/Resources/Shaders/grass.vert25
-rw-r--r--engine-ocean/Resources/Shaders/grassgeom.geom250
-rw-r--r--engine-ocean/Resources/Shaders/phong.frag128
-rw-r--r--engine-ocean/Resources/Shaders/phong.vert41
-rw-r--r--engine-ocean/Resources/Shaders/skybox.frag23
-rw-r--r--engine-ocean/Resources/Shaders/skybox.vert20
-rw-r--r--engine-ocean/Resources/Shaders/text.frag12
-rw-r--r--engine-ocean/Resources/Shaders/text.vert11
-rw-r--r--engine-ocean/Resources/Shaders/water.frag63
-rw-r--r--engine-ocean/Resources/Shaders/water.vert45
95 files changed, 1044 insertions, 0 deletions
diff --git a/engine-ocean/Resources/Fonts/OpenSans.ttf b/engine-ocean/Resources/Fonts/OpenSans.ttf
new file mode 100644
index 0000000..db43334
--- /dev/null
+++ b/engine-ocean/Resources/Fonts/OpenSans.ttf
Binary files differ
diff --git a/engine-ocean/Resources/Images/amantia_loot.png b/engine-ocean/Resources/Images/amantia_loot.png
new file mode 100644
index 0000000..157a1d4
--- /dev/null
+++ b/engine-ocean/Resources/Images/amantia_loot.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/background.png b/engine-ocean/Resources/Images/background.png
new file mode 100644
index 0000000..553a2e4
--- /dev/null
+++ b/engine-ocean/Resources/Images/background.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/bamboo.png b/engine-ocean/Resources/Images/bamboo.png
new file mode 100644
index 0000000..ac1704f
--- /dev/null
+++ b/engine-ocean/Resources/Images/bamboo.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/bark.png b/engine-ocean/Resources/Images/bark.png
new file mode 100644
index 0000000..3a4e60e
--- /dev/null
+++ b/engine-ocean/Resources/Images/bark.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/body.png b/engine-ocean/Resources/Images/body.png
new file mode 100644
index 0000000..694d6a6
--- /dev/null
+++ b/engine-ocean/Resources/Images/body.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/close_icon.png b/engine-ocean/Resources/Images/close_icon.png
new file mode 100644
index 0000000..a8ae9d5
--- /dev/null
+++ b/engine-ocean/Resources/Images/close_icon.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/enterbutton.png b/engine-ocean/Resources/Images/enterbutton.png
new file mode 100644
index 0000000..e108112
--- /dev/null
+++ b/engine-ocean/Resources/Images/enterbutton.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/eyes.png b/engine-ocean/Resources/Images/eyes.png
new file mode 100644
index 0000000..282ae56
--- /dev/null
+++ b/engine-ocean/Resources/Images/eyes.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/feet.png b/engine-ocean/Resources/Images/feet.png
new file mode 100644
index 0000000..dcfada1
--- /dev/null
+++ b/engine-ocean/Resources/Images/feet.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/foliage.png b/engine-ocean/Resources/Images/foliage.png
new file mode 100644
index 0000000..49e889b
--- /dev/null
+++ b/engine-ocean/Resources/Images/foliage.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/foliage1.png b/engine-ocean/Resources/Images/foliage1.png
new file mode 100644
index 0000000..71502ff
--- /dev/null
+++ b/engine-ocean/Resources/Images/foliage1.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/grass.png b/engine-ocean/Resources/Images/grass.png
new file mode 100644
index 0000000..4b41ef1
--- /dev/null
+++ b/engine-ocean/Resources/Images/grass.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/grass_texture.png b/engine-ocean/Resources/Images/grass_texture.png
new file mode 100644
index 0000000..2c74141
--- /dev/null
+++ b/engine-ocean/Resources/Images/grass_texture.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/grass_texture2.png b/engine-ocean/Resources/Images/grass_texture2.png
new file mode 100644
index 0000000..0f7f707
--- /dev/null
+++ b/engine-ocean/Resources/Images/grass_texture2.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/hands.png b/engine-ocean/Resources/Images/hands.png
new file mode 100644
index 0000000..dcfada1
--- /dev/null
+++ b/engine-ocean/Resources/Images/hands.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/haori.png b/engine-ocean/Resources/Images/haori.png
new file mode 100644
index 0000000..7ea0383
--- /dev/null
+++ b/engine-ocean/Resources/Images/haori.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/hat.png b/engine-ocean/Resources/Images/hat.png
new file mode 100644
index 0000000..5f12d82
--- /dev/null
+++ b/engine-ocean/Resources/Images/hat.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/head.png b/engine-ocean/Resources/Images/head.png
new file mode 100644
index 0000000..440f74e
--- /dev/null
+++ b/engine-ocean/Resources/Images/head.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/healthbar.png b/engine-ocean/Resources/Images/healthbar.png
new file mode 100644
index 0000000..0f767a6
--- /dev/null
+++ b/engine-ocean/Resources/Images/healthbar.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/inventory_bg.png b/engine-ocean/Resources/Images/inventory_bg.png
new file mode 100644
index 0000000..a139ed6
--- /dev/null
+++ b/engine-ocean/Resources/Images/inventory_bg.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/inventory_page.png b/engine-ocean/Resources/Images/inventory_page.png
new file mode 100644
index 0000000..102ee28
--- /dev/null
+++ b/engine-ocean/Resources/Images/inventory_page.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/inventoryicon.png b/engine-ocean/Resources/Images/inventoryicon.png
new file mode 100644
index 0000000..aedee86
--- /dev/null
+++ b/engine-ocean/Resources/Images/inventoryicon.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/lakebottom.png b/engine-ocean/Resources/Images/lakebottom.png
new file mode 100644
index 0000000..967c9eb
--- /dev/null
+++ b/engine-ocean/Resources/Images/lakebottom.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/meadow.png b/engine-ocean/Resources/Images/meadow.png
new file mode 100644
index 0000000..88d267a
--- /dev/null
+++ b/engine-ocean/Resources/Images/meadow.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/meadow_flower_map.png b/engine-ocean/Resources/Images/meadow_flower_map.png
new file mode 100644
index 0000000..0d2d947
--- /dev/null
+++ b/engine-ocean/Resources/Images/meadow_flower_map.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/meadow_texture_atlas.png b/engine-ocean/Resources/Images/meadow_texture_atlas.png
new file mode 100644
index 0000000..ae70e9c
--- /dev/null
+++ b/engine-ocean/Resources/Images/meadow_texture_atlas.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/meadow_texture_atlas1.png b/engine-ocean/Resources/Images/meadow_texture_atlas1.png
new file mode 100644
index 0000000..85d1ce0
--- /dev/null
+++ b/engine-ocean/Resources/Images/meadow_texture_atlas1.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/mossyground.png b/engine-ocean/Resources/Images/mossyground.png
new file mode 100644
index 0000000..c3f94b2
--- /dev/null
+++ b/engine-ocean/Resources/Images/mossyground.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/mossywood.png b/engine-ocean/Resources/Images/mossywood.png
new file mode 100644
index 0000000..3e4909d
--- /dev/null
+++ b/engine-ocean/Resources/Images/mossywood.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/mouse profile.png b/engine-ocean/Resources/Images/mouse profile.png
new file mode 100644
index 0000000..f6b1a11
--- /dev/null
+++ b/engine-ocean/Resources/Images/mouse profile.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/mouse.png b/engine-ocean/Resources/Images/mouse.png
new file mode 100644
index 0000000..5591a6e
--- /dev/null
+++ b/engine-ocean/Resources/Images/mouse.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/mouse_profile.png b/engine-ocean/Resources/Images/mouse_profile.png
new file mode 100644
index 0000000..924c689
--- /dev/null
+++ b/engine-ocean/Resources/Images/mouse_profile.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/mushroom.png b/engine-ocean/Resources/Images/mushroom.png
new file mode 100644
index 0000000..8bd18cb
--- /dev/null
+++ b/engine-ocean/Resources/Images/mushroom.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/mushroom_loot.png b/engine-ocean/Resources/Images/mushroom_loot.png
new file mode 100644
index 0000000..1d7478a
--- /dev/null
+++ b/engine-ocean/Resources/Images/mushroom_loot.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/nose.png b/engine-ocean/Resources/Images/nose.png
new file mode 100644
index 0000000..4b26100
--- /dev/null
+++ b/engine-ocean/Resources/Images/nose.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/profileicon.png b/engine-ocean/Resources/Images/profileicon.png
new file mode 100644
index 0000000..9e5eb74
--- /dev/null
+++ b/engine-ocean/Resources/Images/profileicon.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/profilepage.png b/engine-ocean/Resources/Images/profilepage.png
new file mode 100644
index 0000000..cd830e8
--- /dev/null
+++ b/engine-ocean/Resources/Images/profilepage.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/pupils.png b/engine-ocean/Resources/Images/pupils.png
new file mode 100644
index 0000000..f4f7462
--- /dev/null
+++ b/engine-ocean/Resources/Images/pupils.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/questicon.png b/engine-ocean/Resources/Images/questicon.png
new file mode 100644
index 0000000..8250a45
--- /dev/null
+++ b/engine-ocean/Resources/Images/questicon.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/sample mouse color.png b/engine-ocean/Resources/Images/sample mouse color.png
new file mode 100644
index 0000000..2b04879
--- /dev/null
+++ b/engine-ocean/Resources/Images/sample mouse color.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/settings_icon.png b/engine-ocean/Resources/Images/settings_icon.png
new file mode 100644
index 0000000..d797465
--- /dev/null
+++ b/engine-ocean/Resources/Images/settings_icon.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/skybox/back.png b/engine-ocean/Resources/Images/skybox/back.png
new file mode 100644
index 0000000..8de5963
--- /dev/null
+++ b/engine-ocean/Resources/Images/skybox/back.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/skybox/back1.png b/engine-ocean/Resources/Images/skybox/back1.png
new file mode 100644
index 0000000..6dea976
--- /dev/null
+++ b/engine-ocean/Resources/Images/skybox/back1.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/skybox/bottom.png b/engine-ocean/Resources/Images/skybox/bottom.png
new file mode 100644
index 0000000..8bae4d0
--- /dev/null
+++ b/engine-ocean/Resources/Images/skybox/bottom.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/skybox/front.png b/engine-ocean/Resources/Images/skybox/front.png
new file mode 100644
index 0000000..dd2f57e
--- /dev/null
+++ b/engine-ocean/Resources/Images/skybox/front.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/skybox/hills2/back.png b/engine-ocean/Resources/Images/skybox/hills2/back.png
new file mode 100644
index 0000000..02d22fb
--- /dev/null
+++ b/engine-ocean/Resources/Images/skybox/hills2/back.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/skybox/hills2/bottom.png b/engine-ocean/Resources/Images/skybox/hills2/bottom.png
new file mode 100644
index 0000000..ec05a51
--- /dev/null
+++ b/engine-ocean/Resources/Images/skybox/hills2/bottom.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/skybox/hills2/front.png b/engine-ocean/Resources/Images/skybox/hills2/front.png
new file mode 100644
index 0000000..8c1bc93
--- /dev/null
+++ b/engine-ocean/Resources/Images/skybox/hills2/front.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/skybox/hills2/left.png b/engine-ocean/Resources/Images/skybox/hills2/left.png
new file mode 100644
index 0000000..e154382
--- /dev/null
+++ b/engine-ocean/Resources/Images/skybox/hills2/left.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/skybox/hills2/right.png b/engine-ocean/Resources/Images/skybox/hills2/right.png
new file mode 100644
index 0000000..99b77ae
--- /dev/null
+++ b/engine-ocean/Resources/Images/skybox/hills2/right.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/skybox/hills2/top.png b/engine-ocean/Resources/Images/skybox/hills2/top.png
new file mode 100644
index 0000000..41e4545
--- /dev/null
+++ b/engine-ocean/Resources/Images/skybox/hills2/top.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/skybox/hills2/up.png b/engine-ocean/Resources/Images/skybox/hills2/up.png
new file mode 100644
index 0000000..4eb2cca
--- /dev/null
+++ b/engine-ocean/Resources/Images/skybox/hills2/up.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/skybox/left.png b/engine-ocean/Resources/Images/skybox/left.png
new file mode 100644
index 0000000..4a54167
--- /dev/null
+++ b/engine-ocean/Resources/Images/skybox/left.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/skybox/right.png b/engine-ocean/Resources/Images/skybox/right.png
new file mode 100644
index 0000000..7e6c8a9
--- /dev/null
+++ b/engine-ocean/Resources/Images/skybox/right.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/skybox/top.png b/engine-ocean/Resources/Images/skybox/top.png
new file mode 100644
index 0000000..5035d47
--- /dev/null
+++ b/engine-ocean/Resources/Images/skybox/top.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/snowymountain.png b/engine-ocean/Resources/Images/snowymountain.png
new file mode 100644
index 0000000..d557723
--- /dev/null
+++ b/engine-ocean/Resources/Images/snowymountain.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/sparkle.png b/engine-ocean/Resources/Images/sparkle.png
new file mode 100644
index 0000000..be4a7b2
--- /dev/null
+++ b/engine-ocean/Resources/Images/sparkle.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/square.png b/engine-ocean/Resources/Images/square.png
new file mode 100644
index 0000000..aadf22c
--- /dev/null
+++ b/engine-ocean/Resources/Images/square.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/stone.png b/engine-ocean/Resources/Images/stone.png
new file mode 100644
index 0000000..40996f7
--- /dev/null
+++ b/engine-ocean/Resources/Images/stone.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/title.png b/engine-ocean/Resources/Images/title.png
new file mode 100644
index 0000000..3dbcba1
--- /dev/null
+++ b/engine-ocean/Resources/Images/title.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/water.png b/engine-ocean/Resources/Images/water.png
new file mode 100644
index 0000000..f305f16
--- /dev/null
+++ b/engine-ocean/Resources/Images/water.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/waterDUDV.png b/engine-ocean/Resources/Images/waterDUDV.png
new file mode 100644
index 0000000..88e313f
--- /dev/null
+++ b/engine-ocean/Resources/Images/waterDUDV.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/wind_flowmap.png b/engine-ocean/Resources/Images/wind_flowmap.png
new file mode 100644
index 0000000..5d0ee9d
--- /dev/null
+++ b/engine-ocean/Resources/Images/wind_flowmap.png
Binary files differ
diff --git a/engine-ocean/Resources/Images/wind_flowmap1.png b/engine-ocean/Resources/Images/wind_flowmap1.png
new file mode 100644
index 0000000..1f9e3a7
--- /dev/null
+++ b/engine-ocean/Resources/Images/wind_flowmap1.png
Binary files differ
diff --git a/engine-ocean/Resources/Meshes/floor.mtl b/engine-ocean/Resources/Meshes/floor.mtl
new file mode 100644
index 0000000..be2f57b
--- /dev/null
+++ b/engine-ocean/Resources/Meshes/floor.mtl
@@ -0,0 +1,12 @@
+# Blender 3.4.1 MTL File: 'None'
+# www.blender.org
+
+newmtl Material
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Kd 0.800000 0.800000 0.800000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
diff --git a/engine-ocean/Resources/Meshes/grassfield_simple.mtl b/engine-ocean/Resources/Meshes/grassfield_simple.mtl
new file mode 100644
index 0000000..7cf8519
--- /dev/null
+++ b/engine-ocean/Resources/Meshes/grassfield_simple.mtl
@@ -0,0 +1,12 @@
+# Blender 3.4.1 MTL File: 'grassy field test.blend'
+# www.blender.org
+
+newmtl mossyground
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/mossyground.png
diff --git a/engine-ocean/Resources/Meshes/grasslandscape.mtl b/engine-ocean/Resources/Meshes/grasslandscape.mtl
new file mode 100644
index 0000000..46bc110
--- /dev/null
+++ b/engine-ocean/Resources/Meshes/grasslandscape.mtl
@@ -0,0 +1,2 @@
+# Blender 3.4.1 MTL File: 'None'
+# www.blender.org
diff --git a/engine-ocean/Resources/Meshes/howl_field_background.mtl b/engine-ocean/Resources/Meshes/howl_field_background.mtl
new file mode 100644
index 0000000..fecb4fa
--- /dev/null
+++ b/engine-ocean/Resources/Meshes/howl_field_background.mtl
@@ -0,0 +1,22 @@
+# Blender 3.4.1 MTL File: 'howl_field.blend'
+# www.blender.org
+
+newmtl lakebottom
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/lakebottom.png
+
+newmtl snowymountain
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/snowymountain.png
diff --git a/engine-ocean/Resources/Meshes/howl_field_water.mtl b/engine-ocean/Resources/Meshes/howl_field_water.mtl
new file mode 100644
index 0000000..5b20d14
--- /dev/null
+++ b/engine-ocean/Resources/Meshes/howl_field_water.mtl
@@ -0,0 +1,12 @@
+# Blender 3.4.1 MTL File: 'howl_field.blend'
+# www.blender.org
+
+newmtl water
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/water.png
diff --git a/engine-ocean/Resources/Meshes/meadow_ground.mtl b/engine-ocean/Resources/Meshes/meadow_ground.mtl
new file mode 100644
index 0000000..53b406a
--- /dev/null
+++ b/engine-ocean/Resources/Meshes/meadow_ground.mtl
@@ -0,0 +1,12 @@
+# Blender 3.4.1 MTL File: 'howl_field.blend'
+# www.blender.org
+
+newmtl meadow
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/meadow.png
diff --git a/engine-ocean/Resources/Meshes/mouse2-3materials.mtl b/engine-ocean/Resources/Meshes/mouse2-3materials.mtl
new file mode 100644
index 0000000..5288304
--- /dev/null
+++ b/engine-ocean/Resources/Meshes/mouse2-3materials.mtl
@@ -0,0 +1,92 @@
+# Blender 3.4.1 MTL File: 'mouse2-2.blend'
+# www.blender.org
+
+newmtl body
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/body.png
+
+newmtl eyes
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/eyes.png
+
+newmtl feet
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/feet.png
+
+newmtl hands
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/hands.png
+
+newmtl haori
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Kd 0.800000 0.800000 0.800000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+
+newmtl hat
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/hat.png
+
+newmtl head
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Kd 0.800000 0.800000 0.800000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+
+newmtl nose
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/nose.png
+
+newmtl pupils
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/pupils.png
diff --git a/engine-ocean/Resources/Meshes/mouse2-4.mtl b/engine-ocean/Resources/Meshes/mouse2-4.mtl
new file mode 100644
index 0000000..5288304
--- /dev/null
+++ b/engine-ocean/Resources/Meshes/mouse2-4.mtl
@@ -0,0 +1,92 @@
+# Blender 3.4.1 MTL File: 'mouse2-2.blend'
+# www.blender.org
+
+newmtl body
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/body.png
+
+newmtl eyes
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/eyes.png
+
+newmtl feet
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/feet.png
+
+newmtl hands
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/hands.png
+
+newmtl haori
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Kd 0.800000 0.800000 0.800000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+
+newmtl hat
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/hat.png
+
+newmtl head
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Kd 0.800000 0.800000 0.800000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+
+newmtl nose
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/nose.png
+
+newmtl pupils
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/pupils.png
diff --git a/engine-ocean/Resources/Meshes/mushroom_1.mtl b/engine-ocean/Resources/Meshes/mushroom_1.mtl
new file mode 100644
index 0000000..39042fd
--- /dev/null
+++ b/engine-ocean/Resources/Meshes/mushroom_1.mtl
@@ -0,0 +1,12 @@
+# Blender 3.4.1 MTL File: 'None'
+# www.blender.org
+
+newmtl mushroom
+Ns 0.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.272727 0.272727 0.272727
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/mushroom.png
diff --git a/engine-ocean/Resources/Meshes/mushroom_2.mtl b/engine-ocean/Resources/Meshes/mushroom_2.mtl
new file mode 100644
index 0000000..39042fd
--- /dev/null
+++ b/engine-ocean/Resources/Meshes/mushroom_2.mtl
@@ -0,0 +1,12 @@
+# Blender 3.4.1 MTL File: 'None'
+# www.blender.org
+
+newmtl mushroom
+Ns 0.000000
+Ka 1.000000 1.000000 1.000000
+Ks 0.272727 0.272727 0.272727
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
+map_Kd /Users/jesswan/Desktop/cs1950u/cs1950u-jjesswan/Resources/Images/mushroom.png
diff --git a/engine-ocean/Resources/Meshes/slope.mtl b/engine-ocean/Resources/Meshes/slope.mtl
new file mode 100644
index 0000000..be2f57b
--- /dev/null
+++ b/engine-ocean/Resources/Meshes/slope.mtl
@@ -0,0 +1,12 @@
+# Blender 3.4.1 MTL File: 'None'
+# www.blender.org
+
+newmtl Material
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Kd 0.800000 0.800000 0.800000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
diff --git a/engine-ocean/Resources/Meshes/slopedground.mtl b/engine-ocean/Resources/Meshes/slopedground.mtl
new file mode 100644
index 0000000..be2f57b
--- /dev/null
+++ b/engine-ocean/Resources/Meshes/slopedground.mtl
@@ -0,0 +1,12 @@
+# Blender 3.4.1 MTL File: 'None'
+# www.blender.org
+
+newmtl Material
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Kd 0.800000 0.800000 0.800000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
diff --git a/engine-ocean/Resources/Meshes/testnavmesh.mtl b/engine-ocean/Resources/Meshes/testnavmesh.mtl
new file mode 100644
index 0000000..be2f57b
--- /dev/null
+++ b/engine-ocean/Resources/Meshes/testnavmesh.mtl
@@ -0,0 +1,12 @@
+# Blender 3.4.1 MTL File: 'None'
+# www.blender.org
+
+newmtl Material
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Kd 0.800000 0.800000 0.800000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
diff --git a/engine-ocean/Resources/Meshes/testnavmesh2.mtl b/engine-ocean/Resources/Meshes/testnavmesh2.mtl
new file mode 100644
index 0000000..be2f57b
--- /dev/null
+++ b/engine-ocean/Resources/Meshes/testnavmesh2.mtl
@@ -0,0 +1,12 @@
+# Blender 3.4.1 MTL File: 'None'
+# www.blender.org
+
+newmtl Material
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Kd 0.800000 0.800000 0.800000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
diff --git a/engine-ocean/Resources/Meshes/testplane.mtl b/engine-ocean/Resources/Meshes/testplane.mtl
new file mode 100644
index 0000000..46bc110
--- /dev/null
+++ b/engine-ocean/Resources/Meshes/testplane.mtl
@@ -0,0 +1,2 @@
+# Blender 3.4.1 MTL File: 'None'
+# www.blender.org
diff --git a/engine-ocean/Resources/Meshes/testslope.mtl b/engine-ocean/Resources/Meshes/testslope.mtl
new file mode 100644
index 0000000..be2f57b
--- /dev/null
+++ b/engine-ocean/Resources/Meshes/testslope.mtl
@@ -0,0 +1,12 @@
+# Blender 3.4.1 MTL File: 'None'
+# www.blender.org
+
+newmtl Material
+Ns 250.000000
+Ka 1.000000 1.000000 1.000000
+Kd 0.800000 0.800000 0.800000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.450000
+d 1.000000
+illum 2
diff --git a/engine-ocean/Resources/Shaders/InventoryShader.frag b/engine-ocean/Resources/Shaders/InventoryShader.frag
new file mode 100644
index 0000000..fc89ab1
--- /dev/null
+++ b/engine-ocean/Resources/Shaders/InventoryShader.frag
@@ -0,0 +1,15 @@
+#version 330 core
+in vec2 texCoords;
+out vec4 color;
+
+uniform sampler2D inventoryTexture0;
+
+void main()
+{
+ if (texCoords.x < 0.0 || texCoords.x > 1.0 ||
+ texCoords.y < 0.0 || texCoords.y > 1.0) {
+ discard;
+ }
+
+ color = texture(inventoryTexture0, texCoords);
+}
diff --git a/engine-ocean/Resources/Shaders/UIShader.frag b/engine-ocean/Resources/Shaders/UIShader.frag
new file mode 100644
index 0000000..f7faef6
--- /dev/null
+++ b/engine-ocean/Resources/Shaders/UIShader.frag
@@ -0,0 +1,29 @@
+#version 330 core
+in vec2 texCoords;
+out vec4 color;
+
+uniform sampler2D guiTexture0;
+uniform bool hovering;
+
+
+
+void main()
+{
+ if (texCoords.x < 0.0 || texCoords.x > 1.0 ||
+ texCoords.y < 0.0 || texCoords.y > 1.0) {
+ discard;
+ }
+
+ vec4 texel0, texel1;
+ //color = texture(guiTexture0, texCoords);
+
+ texel0 = texture(guiTexture0, texCoords);
+ //texel1 = texture(guiTexture1, texCoords);
+
+ color = texel0;
+
+ if (hovering){
+ color = mix(color, vec4(0.f, 0.f, 0.f, 1.f), .5f);
+ }
+
+}
diff --git a/engine-ocean/Resources/Shaders/UIShader.vert b/engine-ocean/Resources/Shaders/UIShader.vert
new file mode 100644
index 0000000..27152bd
--- /dev/null
+++ b/engine-ocean/Resources/Shaders/UIShader.vert
@@ -0,0 +1,18 @@
+#version 330 core
+layout (location = 0) in vec2 pos; // <vec2 pos, vec2 tex>
+out vec2 texCoords;
+uniform mat4 transform;
+uniform mat4 projection;
+uniform vec2 textureScale;
+uniform bool hovering;
+
+
+
+
+void main()
+{
+
+ gl_Position = transform*vec4(pos.x, pos.y, 0.f, 1.f);
+ texCoords = textureScale*vec2((pos.x+1.f)/2.f, (pos.y+1.f)/2.f);
+ //texCoords = textureScale * (pos.x - 0.5f) + 0.5f;
+}
diff --git a/engine-ocean/Resources/Shaders/grass.frag b/engine-ocean/Resources/Shaders/grass.frag
new file mode 100644
index 0000000..ac6de94
--- /dev/null
+++ b/engine-ocean/Resources/Shaders/grass.frag
@@ -0,0 +1,22 @@
+#version 330 core
+out vec4 fragColor;
+uniform sampler2D grass_texture;
+uniform vec3 skyColor;
+
+
+in GS_OUT {
+ vec2 texCoord;
+ float visibility;
+} fs_in;
+
+void main(void)
+{
+ vec4 color = texture(grass_texture, fs_in.texCoord);
+ if (color.a < 0.4) discard;
+
+
+ fragColor = color;
+ fragColor = mix(vec4(skyColor, 1.f), fragColor, fs_in.visibility);
+ // fragColor = vec4(0, 0, 1, 1);
+
+}
diff --git a/engine-ocean/Resources/Shaders/grass.vert b/engine-ocean/Resources/Shaders/grass.vert
new file mode 100644
index 0000000..647f171
--- /dev/null
+++ b/engine-ocean/Resources/Shaders/grass.vert
@@ -0,0 +1,25 @@
+#version 330 core
+layout (location = 0) in vec3 pos;
+
+out VS_OUT {
+ float visibility;
+} vs_out;
+
+uniform mat4 view, projection;
+uniform vec4 plane;
+
+// fog
+const float density = .01f;
+const float gradient = 4.f;
+
+void main() {
+
+ gl_ClipDistance[0]=dot(vec4(pos, 1.f), plane);
+
+ vec4 positionRelationToCam = view * vec4(pos, 1.f);
+ float distance = length(positionRelationToCam.xyz);
+ float vis = exp(-pow((distance*density), gradient));
+ vs_out.visibility = clamp(vis, 0.f, 1.f);
+
+ gl_Position = vec4(pos, 1.0);
+}
diff --git a/engine-ocean/Resources/Shaders/grassgeom.geom b/engine-ocean/Resources/Shaders/grassgeom.geom
new file mode 100644
index 0000000..124d6b3
--- /dev/null
+++ b/engine-ocean/Resources/Shaders/grassgeom.geom
@@ -0,0 +1,250 @@
+#version 330 core
+
+layout (points) in;
+layout (triangle_strip, max_vertices = 36) out;
+uniform mat4 view, projection;
+uniform vec3 worldSpace_camPos;
+uniform float u_time;
+uniform sampler2D wind_texture;
+uniform sampler2D meadow_texture;
+uniform vec3 playerPos;
+
+uniform vec4 plane;
+
+
+
+// texture atlasing
+//uniform float numRows;
+//uniform vec2 atlas_offset;
+
+in VS_OUT {
+ float visibility;
+} gs_in[];
+
+out GS_OUT {
+ vec2 texCoord;
+ float visibility;
+} gs_out;
+
+// grass shader referenced from: https://vulpinii.github.io/tutorials/grass-modelisation/en/
+/////////
+float PI = 3.141592653589793;
+mat4 windModel = mat4(1.f);
+mat4 trampleModel = mat4(1.f);
+int numRows = 1;
+
+vec2 atlas_offset = vec2(0.f);
+
+vec2 getOffset(int index, int numRows){
+ int column = int(mod(index, numRows));
+ float xoffset = float(column)/float(numRows);
+
+ int row = index/numRows;
+ float yOffset = float(row)/float(numRows);
+ return vec2(xoffset, yOffset);
+}
+
+mat4 rotX(float a){
+ mat4 rx = mat4(1.f);
+ rx[1] = vec4(0.f, cos(a), -sin(a), 0.f);
+ rx[2] = vec4(0.f, sin(a), cos(a), 0.f);
+
+ return rx;
+}
+
+mat4 rotY(float a){
+ mat4 ry = mat4(1.f);
+ ry[0] = vec4(cos(a), 0.f, sin(a), 0.f);
+ ry[2] = vec4(-sin(a), 0.f, cos(a), 0.f);
+
+ return ry;
+}
+
+mat4 rotZ(float a){
+ mat4 rz = mat4(1.f);
+ rz[0] = vec4(cos(a), sin(a), 0.f, 0.f);
+ rz[1] = vec4(-sin(a), cos(a), 0.f, 0.f);
+
+ return rz;
+}
+
+float randomize(vec2 st){
+ return fract(sin(dot(st.xy,vec2(12.9898,78.233)))*43758.5453123);
+}
+
+
+void makeQuad(vec4 grass_pos, mat4 crossmodel){
+ vec4 vertexPos[4];
+ vertexPos[0] = vec4(-.9f, 0.f, 0.f, 0.f); // bottom left
+ vertexPos[1] = vec4(0.9f, 0.f, 0.f, 0.f); // bottom right
+ vertexPos[2] = vec4(-0.9f, 1.f, 0.f, 0.f); // upper left
+ vertexPos[3] = vec4(0.9f, 1.f, 0.f, 0.f); // upper right
+
+ vec2 texCoords[4];
+ texCoords[0] = vec2(0.f, 0.f);
+ texCoords[1] = vec2(1.f, 0.f);
+ texCoords[2] = vec2(0.f, 1.f);
+ texCoords[3] = vec2(1.f, 1.f);
+
+ mat4 randomY = rotY(randomize(grass_pos.zx)*PI);
+
+ // will apply wind only to top two corners of quad
+ mat4 defaultWind = mat4(1.f);
+ mat4 defaultTrample = mat4(1.f);
+
+ gl_ClipDistance[0]=dot(vec4(grass_pos), plane);
+
+
+ vec2 clampedOffset = atlas_offset;
+ for (int i=0; i<4; i++){
+ if (i>=2) {
+ defaultWind = windModel;
+ defaultTrample = trampleModel;
+
+ }
+
+ gl_Position = projection*view*(grass_pos + (defaultTrample*defaultWind*randomY*crossmodel*vertexPos[i]));
+ gs_out.texCoord = (texCoords[i]/numRows) + clampedOffset;
+ EmitVertex();
+ }
+
+ EndPrimitive();
+
+}
+
+struct TrampleInfo {
+ vec3 trampleOffset;
+ float windMultiplier;
+
+};
+
+
+// trample referenced from NedMakesGames: https://www.youtube.com/watch?v=AmO7k-Lr0XM
+TrampleInfo calculateTrample(vec3 entityWorldPos, float maxDistance, float falloff, float pushAwayStrength, float pushDownStrength){
+ vec3 offset = vec3(0.f);
+ float windMultiplier = 1.f;
+ vec3 distanceVec = gl_in[0].gl_Position.xyz-playerPos;
+ float distance = length(distanceVec);
+
+ // convert to trample strength
+ float strength = 1 - pow(clamp(distance / maxDistance, 0.f, 1.f), falloff);
+
+ // apply pushAway offest in xz plane
+ vec3 xzDistance = vec3(distanceVec.x, 0.f, distanceVec.z);
+ vec3 pushAwayOffset = normalize(xzDistance) * pushAwayStrength * strength;
+
+ // pushDown offset always points downwards
+ vec3 squishOffset = vec3(0.f, -1.f, 0.f) * pushDownStrength * strength;
+
+ offset += pushAwayOffset + squishOffset;
+
+ // supress wind when this grass is being trampled
+
+ windMultiplier = min(windMultiplier, 1-strength);
+
+ TrampleInfo info;
+ info.trampleOffset = offset;
+ info.windMultiplier = windMultiplier;
+
+ return info;
+}
+
+void makeGrass(int numQuads){
+ mat4 model0, model45, modelm45;
+ model0 = mat4(1.f);
+ model45 = rotY(radians(45));
+ modelm45 = rotY(-radians(45));
+
+
+ // wind calculation
+ vec2 windDir = vec2(1.f);
+ float windStrength = .05f;
+
+ // uv coordinates of wind
+ vec2 uv = gl_in[0].gl_Position.xz/10.f + windDir * u_time;
+ uv.x = mod(uv.x, 1.0);
+ uv.y = mod(uv.y, 1.0);
+ vec4 windSpot = texture(wind_texture, uv);
+
+ // get index in meadow texture atlas depending on where uv is
+
+ vec2 meadow_uv = gl_in[0].gl_Position.xz * .03f;
+ meadow_uv.x = mod(meadow_uv.x, 1.0);
+ meadow_uv.y = mod(meadow_uv.y, 1.0);
+ vec4 meadowSpot = texture(meadow_texture, meadow_uv);
+ float meadowSpotAccumulate = meadowSpot.r + meadowSpot.g + meadowSpot.b;
+
+ // convert meadowSpot to range 0-maxindex
+
+ numRows = 4;
+ int index = int(((meadowSpotAccumulate) / (3.f) ) * (16.f));
+ if (index < 0) index = 0;
+ if (index > 15) index = 15;
+ atlas_offset = getOffset(index, numRows);
+
+
+ // matrix that rotates top of grass away from player
+ TrampleInfo info = calculateTrample(playerPos, 2.f, 5.f, .52f, .51f);
+ trampleModel = (rotX(info.trampleOffset.x*PI*1.f) * rotZ(info.trampleOffset.z*PI*1.f));
+
+ // matrix that tilts quad in x and z dir, accordiing to wind dir and force
+ windModel = (rotX(windSpot.x*PI*.75f*info.windMultiplier - PI*.25f) * rotZ(windSpot.z*PI*.75f*info.windMultiplier - PI*.25f));
+
+
+ // draw number of quads based on level of detail
+ switch(numQuads){
+ case 1: {
+ makeQuad(gl_in[0].gl_Position, model0);
+ break;
+ }
+ case 2: {
+ makeQuad(gl_in[0].gl_Position, model45);
+ makeQuad(gl_in[0].gl_Position, modelm45);
+ break;
+ }
+ default: {
+ makeQuad(gl_in[0].gl_Position, model0);
+ makeQuad(gl_in[0].gl_Position, model45);
+ makeQuad(gl_in[0].gl_Position, modelm45);
+ break;
+ }
+ }
+
+}
+
+
+const float LOD1 = 5.f;
+const float LOD2 = 10.f;
+const float LOD3 = 30.f;
+
+
+void main()
+{
+ gs_out.visibility = gs_in[0].visibility;
+
+ vec3 dist_to_camera = gl_in[0].gl_Position.xyz - worldSpace_camPos;
+ float dist_length = length(dist_to_camera);
+
+ // add transition for smooth levels
+ float t = 6.f;
+ if (dist_length > LOD2) t*=1.5f;
+ dist_length += (randomize(gl_in[0].gl_Position.xz)*t - t/2.f);
+
+ // change depending on distance
+ int detailLevel = 3;
+ if (dist_length > LOD1) detailLevel = 2;
+ if (dist_length > LOD2) detailLevel = 1;
+ if (dist_length > LOD3) detailLevel = 0;
+
+ // make grass with transition levels
+ if (detailLevel != 1
+ || (detailLevel == 1 && (int(gl_in[0].gl_Position.x * 10) % 1) == 0
+ || (int(gl_in[0].gl_Position.z * 10) % 1) == 0)
+ || (detailLevel == 2 && (int(gl_in[0].gl_Position.x * 5) % 1) == 0
+ || (int(gl_in[0].gl_Position.z * 5) % 1) == 0)
+ ) {
+ makeGrass(detailLevel);
+ }
+}
+
+
diff --git a/engine-ocean/Resources/Shaders/phong.frag b/engine-ocean/Resources/Shaders/phong.frag
new file mode 100644
index 0000000..a83fc54
--- /dev/null
+++ b/engine-ocean/Resources/Shaders/phong.frag
@@ -0,0 +1,128 @@
+#version 330 core
+// Uniforms for shape information
+in vec3 worldSpace_pos;
+in vec3 worldSpace_norm;
+in vec2 tex_coord;
+
+in float visibility;
+
+uniform vec3 skyColor;
+
+// Object Material Data
+uniform int colorSource; // 0 = solid color (objColor), 1 = texture color (objTexture), 2 = per-vertex color (vertColor)
+uniform vec3 objColor;
+uniform sampler2D objTexture;
+in vec3 vertColor;
+uniform float shininess;
+
+// Camera uniform
+uniform vec3 worldSpace_camPos;
+
+// Global Data
+uniform vec3 coeffs; // vec3(ka, kd, ks)
+
+// Light Data
+uniform int lightType[16]; // 0 = point light, 1 = directional light
+uniform vec3 lightColor[16];
+uniform vec3 lightFunction[16]; // Attenuation coefficients
+uniform vec3 worldSpace_lightPos[16]; //Light Positions
+uniform vec3 worldSpace_lightDir[16]; //Light Directions
+uniform int numLights; // Max number of lights = 8
+
+out vec4 fragColor;
+
+vec3 getToLight(int lightIndex) {
+ int LIGHT_POINT = 0;
+ int LIGHT_DIRECTIONAL = 1;
+
+ if (lightType[lightIndex] == LIGHT_POINT) {
+ return normalize(worldSpace_lightPos[lightIndex] - worldSpace_pos);
+ }
+ else if (lightType[lightIndex] == LIGHT_DIRECTIONAL) {
+ return normalize(-worldSpace_lightDir[lightIndex]);
+ }
+
+ return vec3(0);
+}
+
+float attenuationFactor(int lightIndex) {
+ int LIGHT_POINT = 0;
+
+ if (lightType[lightIndex] == LIGHT_POINT) {
+ vec3 coeffs = lightFunction[lightIndex];
+ float d = length(worldSpace_lightPos[lightIndex] - worldSpace_pos);
+ return 1.0 / (coeffs.x + coeffs.y * d + coeffs.z * d * d);
+ }
+
+ return 1;
+}
+
+float computeDiffuseIntensity(vec3 worldSpace_toLight) {
+ // Dot product to get diffuse intensity
+ return max(dot(worldSpace_toLight, normalize(worldSpace_norm)), 0);
+}
+
+float computeSpecularIntensity(vec3 worldSpace_toLight, vec3 worldSpace_toEye) {
+ // Guard against pow weirdness when exponent is 0
+ if (shininess == 0) {
+ return 0;
+ }
+
+ //reflect toLight
+ vec3 worldSpace_toLightReflected = reflect(-worldSpace_toLight, normalize(worldSpace_norm));
+
+ //Compute specular intensity using toEye, reflected light, and shininess
+ return pow(max(dot(worldSpace_toLightReflected, worldSpace_toEye), 0), shininess);
+}
+
+void main() {
+ // Declare ambient, diffuse, and specular terms
+ vec3 ambi = vec3(coeffs.x);
+ vec3 diff = vec3(0.0);
+ vec3 spec = vec3(0.0);
+
+
+ // Compute worldSpace_toEye Vector for specular intensity computation;
+ vec3 worldSpace_toEye = normalize(worldSpace_camPos - worldSpace_pos);
+
+
+ // Compute per-light diffuse and specular contribution
+ for(int i = 0; i<numLights; i+= 1){
+
+ // get direction vector to light based on light type
+ vec3 worldSpace_toLight = getToLight(i);
+
+ float diffuse_intensity = computeDiffuseIntensity(worldSpace_toLight);
+ float specular_intensity = computeSpecularIntensity(worldSpace_toLight, worldSpace_toEye);
+
+ float att = attenuationFactor(i);
+
+
+ diff = diff + diffuse_intensity * lightColor[i] * att;
+ spec = spec + specular_intensity * lightColor[i] * att;
+ }
+
+ // Apply global coefficients and object color to the diffuse and specular components
+ diff = diff * vec3(coeffs.y);
+ spec = spec * vec3(coeffs.z);
+
+ // Color generated only from light intensities and colors
+ vec3 tempColor = clamp(ambi + diff + spec, 0, 1);
+
+ // Apply correct object color
+ if (colorSource == 0 ) {
+ fragColor = vec4(tempColor * objColor, 1.0);
+ }
+ else if (colorSource == 1){
+ fragColor = vec4(tempColor * vec3(texture(objTexture, tex_coord)), 1.0);
+ }
+ else if (colorSource == 2) {
+ fragColor = vec4(tempColor * vertColor, 1.0);
+ }
+ else{
+ fragColor = vec4(tempColor, 1.0);
+ }
+
+ // mix actual color with fog color
+ // fragColor = mix(vec4(.77f, .85f, .99f, 1.f), fragColor, visibility);
+}
diff --git a/engine-ocean/Resources/Shaders/phong.vert b/engine-ocean/Resources/Shaders/phong.vert
new file mode 100644
index 0000000..75d2aa1
--- /dev/null
+++ b/engine-ocean/Resources/Shaders/phong.vert
@@ -0,0 +1,41 @@
+#version 330 core
+
+// All in object space
+layout (location = 0) in vec3 pos;
+layout (location = 1) in vec3 norm;
+layout (location = 2) in vec2 uv;
+layout (location = 3) in vec3 color;
+
+uniform mat4 model, view, projection;
+uniform vec3 worldSpace_camPos;
+
+out vec3 worldSpace_pos;
+out vec3 worldSpace_norm;
+out vec2 tex_coord;
+out vec3 vertColor;
+out float visibility;
+
+// fog
+const float density = .01f;
+const float gradient = 4.f;
+
+// REFLECTION/REFRACTION
+uniform vec4 plane; // horizontal plane
+
+void main() {
+ worldSpace_pos = vec3(view*model*vec4(pos, 1.0));
+ worldSpace_norm = vec3(transpose(inverse(model))*vec4(norm, 0.0));
+
+ vec4 positionRelationToCam = view * vec4(pos, 1.f);
+ float distance = length(positionRelationToCam.xyz);
+ visibility = exp(-pow((distance*density), gradient));
+ visibility = clamp(visibility, 0.f, 1.f);
+
+ // gl_ClipDistance[0]=dot(vec4(worldSpace_pos, 1.f), plane);
+
+
+ tex_coord = uv;
+ vertColor = color;
+
+ gl_Position = projection*view*model*vec4(pos, 1.0);
+}
diff --git a/engine-ocean/Resources/Shaders/skybox.frag b/engine-ocean/Resources/Shaders/skybox.frag
new file mode 100644
index 0000000..7589faf
--- /dev/null
+++ b/engine-ocean/Resources/Shaders/skybox.frag
@@ -0,0 +1,23 @@
+#version 330 core
+
+in vec3 tex_coord;
+
+uniform samplerCube cubeMap;
+uniform vec3 skyColor;
+
+out vec4 fragColor;
+
+const float lowerLimit = -50.f;
+const float upperLimit = 100.f;
+
+
+void main() {
+
+ //fragColor = vec4(1.f);
+ vec4 finalColor = texture(cubeMap, tex_coord);
+
+ // blending bottom of skybox to skyColor
+ float factor = (tex_coord.y - lowerLimit) / (upperLimit - lowerLimit);
+ factor = clamp(factor, 0.f, 1.f);
+ fragColor = mix(vec4(skyColor, 1.f), finalColor, factor);
+}
diff --git a/engine-ocean/Resources/Shaders/skybox.vert b/engine-ocean/Resources/Shaders/skybox.vert
new file mode 100644
index 0000000..ddffb10
--- /dev/null
+++ b/engine-ocean/Resources/Shaders/skybox.vert
@@ -0,0 +1,20 @@
+#version 330 core
+
+layout (location = 0) in vec3 pos;
+//layout (location = 1) in vec2 uv;
+
+uniform mat4 view, projection, rotation;
+
+out vec3 tex_coord;
+
+
+
+void main() {
+
+ tex_coord = vec3(pos.x, pos.y, -pos.z);
+ vec4 world_pos = projection*view*rotation*vec4(pos, 1.0);
+ gl_Position = vec4(world_pos.x, world_pos.y, world_pos.w, world_pos.w);
+
+// tex_coord = pos;
+// gl_Position = projection*view*vec4(pos, 1.0);
+}
diff --git a/engine-ocean/Resources/Shaders/text.frag b/engine-ocean/Resources/Shaders/text.frag
new file mode 100644
index 0000000..782adc6
--- /dev/null
+++ b/engine-ocean/Resources/Shaders/text.frag
@@ -0,0 +1,12 @@
+#version 330 core
+in vec2 TexCoords;
+out vec4 color;
+
+uniform sampler2D text;
+uniform vec3 textColor;
+
+void main()
+{
+ vec4 sampled = vec4(1.0, 1.0, 1.0, texture(text, TexCoords).r);
+ color = vec4(textColor, 1.0) * sampled;
+} \ No newline at end of file
diff --git a/engine-ocean/Resources/Shaders/text.vert b/engine-ocean/Resources/Shaders/text.vert
new file mode 100644
index 0000000..2f835da
--- /dev/null
+++ b/engine-ocean/Resources/Shaders/text.vert
@@ -0,0 +1,11 @@
+#version 330 core
+layout (location = 0) in vec4 vertex; // <vec2 pos, vec2 tex>
+out vec2 TexCoords;
+
+uniform mat4 projection;
+
+void main()
+{
+ gl_Position = projection * vec4(vertex.xy, 0.0, 1.0);
+ TexCoords = vertex.zw;
+}
diff --git a/engine-ocean/Resources/Shaders/water.frag b/engine-ocean/Resources/Shaders/water.frag
new file mode 100644
index 0000000..b86e3a9
--- /dev/null
+++ b/engine-ocean/Resources/Shaders/water.frag
@@ -0,0 +1,63 @@
+#version 330 core
+// Uniforms for shape information
+//in vec3 worldSpace_pos;
+//in vec3 worldSpace_norm;
+
+in float visibility;
+in vec4 clipSpace;
+in vec2 tex_coord;
+in vec3 toCameraVector;
+
+
+
+// Camera uniform
+uniform vec3 worldSpace_camPos;
+uniform sampler2D reflect_texture;
+uniform sampler2D refract_texture;
+uniform sampler2D du_dv_map;
+uniform float moveFactor; // offset that changes over time
+
+out vec4 fragColor;
+
+const float distortionStrength = .02f;
+const vec4 waterColor = vec4(.06f, .49f, .59f, 1.f);
+uniform vec3 skyColor;
+
+
+void main() {
+
+ // screen space coords
+ vec2 ndc = (clipSpace.xy/clipSpace.w)/2.f + .5f;
+
+ vec2 refractTexCoords = ndc;
+ vec2 reflectTexCoords = vec2(ndc.x, ndc.y);
+
+ // get associated rg color in the range -1,1 from du_dv map
+ vec2 distortion1 = (texture(du_dv_map, vec2(tex_coord.x + moveFactor, tex_coord.y)).rg*2.f - 1.f) * distortionStrength;
+ vec2 distortion2 = (texture(du_dv_map, vec2(-tex_coord.x + moveFactor, tex_coord.y + moveFactor)).rg*2.f - 1.f) * distortionStrength;
+ vec2 totalDistortion = distortion1 + distortion2;
+
+ refractTexCoords += totalDistortion;
+ reflectTexCoords += totalDistortion;
+
+ refractTexCoords = clamp(refractTexCoords, 0.001f, .999f);
+ reflectTexCoords = clamp(reflectTexCoords, 0.001f, .999f);
+
+ // fresnel effect
+ vec3 viewVector = normalize(toCameraVector);
+ float refractiveFactor = dot(viewVector, vec3(0.f, 1.f, 0.f));
+ refractiveFactor = pow(refractiveFactor, 5.f); // changes how reflective water is
+
+
+
+
+
+ vec4 reflect = texture(reflect_texture, reflectTexCoords);
+ vec4 refract = texture(refract_texture, refractTexCoords);
+
+
+ // mix actual color with fog color
+ fragColor = mix(reflect, refract, refractiveFactor);
+ fragColor = mix(fragColor, waterColor, .2f);
+ fragColor = mix(vec4(skyColor, 1.f), fragColor, visibility);
+}
diff --git a/engine-ocean/Resources/Shaders/water.vert b/engine-ocean/Resources/Shaders/water.vert
new file mode 100644
index 0000000..4cf407c
--- /dev/null
+++ b/engine-ocean/Resources/Shaders/water.vert
@@ -0,0 +1,45 @@
+#version 330 core
+
+// All in object space
+layout (location = 0) in vec3 pos;
+layout (location = 1) in vec3 norm;
+layout (location = 2) in vec2 uv;
+layout (location = 3) in vec3 color;
+
+uniform mat4 model, view, projection;
+uniform vec3 worldSpace_camPos;
+
+//out vec3 worldSpace_norm;
+out vec2 tex_coord;
+out vec3 vertColor;
+out float visibility;
+out vec4 clipSpace;
+out vec3 toCameraVector;
+
+// fog
+const float density = .01f;
+const float gradient = 4.f;
+
+const float tiling = 6.f;
+
+vec4 worldSpace_pos;
+
+// water referenced from: ThinMatrix https://www.youtube.com/watch?v=qgDPSnZPGMA
+
+void main() {
+ worldSpace_pos = view*model*vec4(pos, 1.0);
+ //worldSpace_norm = vec3(transpose(inverse(model))*vec4(norm, 0.0));
+
+ vec4 positionRelationToCam = view * vec4(pos, 1.f);
+ float distance = length(positionRelationToCam.xyz);
+ visibility = exp(-pow((distance*density), gradient));
+ visibility = clamp(visibility, 0.f, 1.f);
+
+ tex_coord = uv*tiling;
+ vertColor = color;
+
+ clipSpace = projection*worldSpace_pos;
+ gl_Position = clipSpace;
+
+ toCameraVector = worldSpace_camPos - worldSpace_pos.xyz;
+}