Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3D rendering #155

Draft
wants to merge 149 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
149 commits
Select commit Hold shift + click to select a range
7e345ce
Add basic 3d renderer
dominik-zeglen Sep 8, 2024
6c4777f
Add glb files to lfs
dominik-zeglen Sep 10, 2024
ba679c9
Add normal maps
dominik-zeglen Sep 10, 2024
6e022c5
Move rendering engine to separate package
dominik-zeglen Sep 13, 2024
30d48f7
Add tactical map
dominik-zeglen Sep 15, 2024
da85650
Add tactical view
dominik-zeglen Sep 15, 2024
8c6fc7a
Rename dragMove to mouse
dominik-zeglen Sep 15, 2024
a845b6a
Improve model colors
dominik-zeglen Sep 15, 2024
21984da
Fix file case
dominik-zeglen Sep 15, 2024
ab417de
Remove debug code
dominik-zeglen Sep 15, 2024
675eddc
Fix camera jitter
dominik-zeglen Sep 26, 2024
fd0a954
Add basic 3d models
dominik-zeglen Nov 1, 2024
857ff4b
Fix commoditiesArray
dominik-zeglen Nov 1, 2024
62988b0
Fix circular dependency
dominik-zeglen Nov 1, 2024
934a6dc
Update lMil ship
dominik-zeglen Nov 1, 2024
bf763b2
Add missing patch
dominik-zeglen Nov 1, 2024
32006c9
Patch glsl-tokenizer to use 300 es
dominik-zeglen Nov 1, 2024
160bb76
Reduce rotation jitter
dominik-zeglen Nov 2, 2024
92ce27e
Update storybook
dominik-zeglen Nov 4, 2024
3b02f0a
Fix storybook deployment
dominik-zeglen Nov 11, 2024
fd9be14
Add selection rings to entities
dominik-zeglen Nov 11, 2024
25865d9
Enable map drag on left button only
dominik-zeglen Nov 11, 2024
27a02f8
Add context menu
dominik-zeglen Nov 12, 2024
5f19dbd
Add fullscreen request
dominik-zeglen Nov 12, 2024
c5370ae
Disable main quest
dominik-zeglen Nov 12, 2024
847d7e0
Add render to facility components
dominik-zeglen Nov 12, 2024
ab95211
Use renderable index
dominik-zeglen Nov 13, 2024
70e02d5
Rename loaders to materials
dominik-zeglen Nov 13, 2024
4412ad6
Add path rendering
dominik-zeglen Nov 13, 2024
7949d27
Add camera follow
dominik-zeglen Nov 13, 2024
2999aee
Add graphics options to settings
dominik-zeglen Nov 16, 2024
78edd26
Increase max zoom
dominik-zeglen Nov 16, 2024
2ca4ed0
Improve order path rendering
dominik-zeglen Nov 16, 2024
9ef38a9
Update path story
dominik-zeglen Nov 19, 2024
b4a4504
Show undocking ships
dominik-zeglen Nov 19, 2024
6781be7
Add sector switching
dominik-zeglen Nov 21, 2024
f6ea563
Fix blur artifacts
dominik-zeglen Nov 21, 2024
fb72c9c
Simplify code
dominik-zeglen Nov 21, 2024
a7b5018
Split meshes and materials
dominik-zeglen Nov 22, 2024
82a35c9
Improve lighting
dominik-zeglen Dec 4, 2024
bb26d36
Add new dart model
dominik-zeglen Dec 4, 2024
3939b67
Fix normal lighting
dominik-zeglen Dec 4, 2024
66cde4a
Fix camera clip planes
dominik-zeglen Dec 4, 2024
c0e2d52
Use helper hook to get selected unit
dominik-zeglen Dec 4, 2024
be7ed69
Rewrite map control to support rotations
dominik-zeglen Dec 6, 2024
9a860f9
Add ui:arrow tag
dominik-zeglen Dec 6, 2024
ef7cfc8
Add billboards
dominik-zeglen Dec 6, 2024
1dc5186
Swap left and right mouse button functions
dominik-zeglen Dec 7, 2024
6833f88
Add particle generator
dominik-zeglen Dec 12, 2024
3f869cf
Add particle generator to gateway
dominik-zeglen Dec 16, 2024
0f083e1
Add asteroid_4 model
dominik-zeglen Dec 16, 2024
5d585ea
Add getByEntityId util method
dominik-zeglen Dec 16, 2024
1442985
Improve light intensity
dominik-zeglen Dec 16, 2024
c745f33
Add engine effects
dominik-zeglen Dec 16, 2024
0c5780c
Refactor Light to extend Transform
dominik-zeglen Dec 17, 2024
11260f3
Use skybox as a mesh
dominik-zeglen Dec 20, 2024
90cf31d
Clean AssetLoader code
dominik-zeglen Dec 20, 2024
1a4bce7
Fix skybox constructor
dominik-zeglen Dec 20, 2024
f74abc3
Add reflection maps
dominik-zeglen Dec 20, 2024
314c565
Fix render model
dominik-zeglen Dec 20, 2024
396febc
Update saved game
dominik-zeglen Dec 20, 2024
037b396
Refactor TacticalMap to class component
dominik-zeglen Dec 21, 2024
b200324
Fix generator type switching
dominik-zeglen Dec 21, 2024
66d56c0
Improve Teegarden sectors skyboxes
dominik-zeglen Dec 22, 2024
4fe273f
Add asteroid fields
dominik-zeglen Dec 22, 2024
23a1d22
Display current sector
dominik-zeglen Dec 22, 2024
b8ea3de
Improve destroying meshes
dominik-zeglen Dec 22, 2024
41eb865
Improve asteroid models
dominik-zeglen Dec 22, 2024
dd2748d
Add entity indicators
dominik-zeglen Dec 23, 2024
df6c4f8
Fix UI scaling
dominik-zeglen Dec 23, 2024
8a259ed
Fix memory leaks due to allocations
dominik-zeglen Dec 23, 2024
e2432e6
Display sector owner
dominik-zeglen Dec 23, 2024
44c0220
Fix asteroid lighting
dominik-zeglen Dec 23, 2024
01700c4
Add tweakpane
dominik-zeglen Dec 23, 2024
328532c
Scale pane with ui scale
dominik-zeglen Dec 23, 2024
8f78194
Add separate camera module
dominik-zeglen Dec 23, 2024
7cfa3ef
Toggle pane on meta+k
dominik-zeglen Dec 24, 2024
3b9fc23
Add basic strategic map
dominik-zeglen Dec 24, 2024
86b02ed
Split 2d and 3d engine
dominik-zeglen Dec 24, 2024
c6021e5
Add basic strategic map
dominik-zeglen Dec 24, 2024
b981236
Add basic strategic map interactions
dominik-zeglen Dec 25, 2024
ac46e78
Fix rendering quality (finally)
dominik-zeglen Dec 26, 2024
67405a1
Prevent adding multiple panes
dominik-zeglen Dec 26, 2024
45c1108
Disable fxaa by default
dominik-zeglen Dec 26, 2024
628c23a
Remove unnecessary emissive
dominik-zeglen Dec 26, 2024
4857ace
Add sector overview component
dominik-zeglen Dec 26, 2024
8deb13d
Allow useMobx to accept array returning selector
dominik-zeglen Dec 27, 2024
a6d9c63
Disable zoom button
dominik-zeglen Dec 27, 2024
439e7d7
Render entities on strategic map
dominik-zeglen Dec 27, 2024
31d0e7c
Add key to focus on entity
dominik-zeglen Dec 27, 2024
197537f
Add key to focus on current sector in strategic map
dominik-zeglen Dec 27, 2024
890456a
Fix max dialog width
dominik-zeglen Dec 27, 2024
f4b0be0
Add selected unit to game store
dominik-zeglen Dec 27, 2024
a7edbdb
Ignore console warning lint error
dominik-zeglen Dec 27, 2024
9496c71
Add facility focus on double click
dominik-zeglen Dec 27, 2024
46d4ad3
Fix geometry instancing
dominik-zeglen Dec 28, 2024
39e0dd2
Move context menu to mobx state
dominik-zeglen Dec 29, 2024
b2897d7
Remove unused console logs
dominik-zeglen Dec 30, 2024
f881b33
Show tweakpane in storybook
dominik-zeglen Jan 2, 2025
9b51c46
Add scene props
dominik-zeglen Jan 2, 2025
9b227e2
Add m miner and frigate
dominik-zeglen Jan 4, 2025
b0a4c39
Improve code readability
dominik-zeglen Jan 4, 2025
c8f4b2e
Fix entity destroying
dominik-zeglen Jan 4, 2025
734a5ae
Fix error after selecting entity having no orders
dominik-zeglen Jan 4, 2025
0584e8a
Focus on selected unit when entity is selected
dominik-zeglen Jan 4, 2025
515cc7b
Fix light unregistering
dominik-zeglen Jan 4, 2025
d188288
Improve light management system
dominik-zeglen Jan 4, 2025
814a09c
Remove SelectingSystem
dominik-zeglen Jan 4, 2025
60721ee
Use right click to rotate and middle to pan view
dominik-zeglen Jan 5, 2025
c33f8f4
Trigger clicks on pointerup event
dominik-zeglen Jan 5, 2025
f7ca77a
Add selection box
dominik-zeglen Jan 5, 2025
d98dd10
Disable selection box on shift clicks
dominik-zeglen Jan 5, 2025
d763ecc
Remove debug comments
dominik-zeglen Jan 5, 2025
17495a0
Find all selected objects on selection box
dominik-zeglen Jan 5, 2025
e881d23
Rename store methods
dominik-zeglen Jan 5, 2025
8dee23b
Remove selection manager
dominik-zeglen Jan 5, 2025
575051e
Add multiple unit selection
dominik-zeglen Jan 6, 2025
3d946eb
Add sound manifest
dominik-zeglen Jan 6, 2025
f03bac0
Add fail sound
dominik-zeglen Jan 6, 2025
3bfc68b
Allow selection box through ui elements
dominik-zeglen Jan 9, 2025
4333f89
Improve entity selection indicators
dominik-zeglen Jan 10, 2025
209bce0
Add material generator
dominik-zeglen Jan 12, 2025
bebc194
Add dust to asteroid fields
dominik-zeglen Jan 12, 2025
cce9233
Improve sun shader
dominik-zeglen Jan 12, 2025
b2b1cbc
Fix missing scene
dominik-zeglen Jan 12, 2025
fa5e89c
Fix game scenarios
dominik-zeglen Jan 12, 2025
34693f6
Add hp bars
dominik-zeglen Jan 13, 2025
816b680
Add simple shooting effect
dominik-zeglen Jan 13, 2025
5bd1d9d
Fix types
dominik-zeglen Jan 13, 2025
1e93f0a
Add explosion effect after destroying unit
dominik-zeglen Jan 13, 2025
5c8c4ae
Remove dust from asteroid fields
dominik-zeglen Jan 14, 2025
b11aa82
Fix dev actions panel
dominik-zeglen Jan 14, 2025
f24073e
Fix selected unit pane unmounting
dominik-zeglen Jan 14, 2025
76ed50f
Fix damaging angle
dominik-zeglen Jan 14, 2025
2b959ef
Fix undefined error in spotting
dominik-zeglen Jan 14, 2025
6fc9eeb
Add godrays
dominik-zeglen Jan 24, 2025
4117fae
Add volumetric light
dominik-zeglen Jan 24, 2025
c7b4251
Fix ships being able to shoot from one side only
dominik-zeglen Jan 30, 2025
93e8a74
Optimise entity mesh search
dominik-zeglen Jan 30, 2025
caeaa78
Fix ship shooting
dominik-zeglen Jan 30, 2025
1b1b3a0
Allow particles to spawn in local space
dominik-zeglen Jan 30, 2025
dad8b17
Add marble mining ship
dominik-zeglen Jan 30, 2025
c629308
Use Vec2 instead of Position2D
dominik-zeglen Jan 31, 2025
7359004
Fix build tools
dominik-zeglen Feb 3, 2025
d17933a
Add turret tracking
dominik-zeglen Feb 4, 2025
1e0a8b3
Fix minor code issues
dominik-zeglen Feb 9, 2025
c9d38b3
Color ambient with skybox color
dominik-zeglen Feb 11, 2025
0401826
Refactor context menu
dominik-zeglen Feb 12, 2025
e102f06
Fix facility deploying
dominik-zeglen Feb 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ core/world/data/base.json filter=lfs diff=lfs merge=lfs -text
assets/**/*.png filter=lfs diff=lfs merge=lfs -text
assets/**/*.wav filter=lfs diff=lfs merge=lfs -text
assets/**/*.jpg filter=lfs diff=lfs merge=lfs -text
assets/**/*.glb filter=lfs diff=lfs merge=lfs -text
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@
!.husky
dist
node_modules
TODO
TODO
*.bundled.*
storybook-static
10 changes: 9 additions & 1 deletion .storybook/main.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import custom from "../webpack.config.ts";
import HtmlWebpackPlugin from "html-webpack-plugin";

module.exports = {
stories: [
"../stories/**/*.stories.mdx",
"../stories/**/*.stories.@(js|jsx|ts|tsx)",
"../ui/**/*.stories.tsx",
"../ogl-engine/**/*.stories.tsx",
],
addons: [
"@storybook/addon-links",
Expand All @@ -20,6 +22,7 @@ module.exports = {
...config,
module: {
...config.module,

rules: [
...config.module.rules.filter(({ test }) =>
test ? !test.toString().includes(".css") : true
Expand All @@ -31,7 +34,12 @@ module.exports = {
...config.resolve,
plugins: custom.resolve.plugins,
},
plugins: [...config.plugins, ...custom.plugins],
plugins: [
...config.plugins,
...custom.plugins.filter(
(plugin) => !(plugin instanceof HtmlWebpackPlugin)
),
],
};
},
};
3 changes: 1 addition & 2 deletions .storybook/preview.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
export const parameters = {
actions: { argTypesRegex: "^on[A-Z].*" },
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/,
},
},
}
};
File renamed without changes.
27 changes: 27 additions & 0 deletions _templates/material/new/material.ejs.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
to: ogl-engine/materials/<%= name %>/<%= name %>.ts
---

import { Program } from "ogl";
import type { Engine3D } from "@ogl-engine/engine/engine3d";
import fragment from "./shader.frag.glsl";
import vertex from "./shader.vert.glsl";
import { Material } from "../material";

export class <%= h.capitalize(name) %>Material extends Material {
uniforms: Material["uniforms"] & {

};

constructor(engine: Engine3D) {
super(engine);

this.program = new Program(engine.gl, {
vertex,
fragment,
uniforms: this.uniforms,
});

this.uniforms.
}
}
24 changes: 24 additions & 0 deletions _templates/material/new/shader.frag.ejs.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
to: ogl-engine/materials/<%= name %>/shader.frag.glsl
---

#version 300 es
precision highp float;

in vec2 vUv;

out vec4 fragData[2];

uniform sampler2D tMap;
uniform vec3 uColor;
uniform float fEmissive;

void main() {
vec4 tex = texture(tMap, vUv);
if(tex.a < 0.1f) {
discard;
}

fragData[0] = tex * vec4(uColor, 1.0f);
fragData[1] = fragData[0] * fEmissive;
}
19 changes: 19 additions & 0 deletions _templates/material/new/shader.vert.ejs.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
to: ogl-engine/materials/<%= name %>/shader.vert.glsl
---

#version 300 es
precision highp float;

in vec3 position;
in vec2 uv;

out vec2 vUv;

uniform mat4 modelViewMatrix;
uniform mat4 projectionMatrix;

void main() {
vUv = uv;
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0f);
}
Loading
Loading