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

Feat/engine tools #7

Merged
merged 92 commits into from
Apr 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
7ce29b0
feat: base material editor tool
ashifolfi Mar 25, 2024
906e655
adjustments to build and testgame resource
ashifolfi Mar 25, 2024
62d5987
feat: Add IRenderable entity interface
ashifolfi Mar 29, 2024
eb5b7b0
fix: missing imports in game_shared
ashifolfi Mar 29, 2024
637e1bb
fix: broken paths in game_shared.props imports
ashifolfi Mar 29, 2024
e236371
fix: messed up material header format
ashifolfi Mar 29, 2024
9c7bb1a
fix: error in entitycomponent method
ashifolfi Mar 29, 2024
0a38382
feat: renderable entity interface pt.2
ashifolfi Mar 29, 2024
3b23de4
fix: `subclassof` should be `assignableto`
ashifolfi Mar 29, 2024
39caf0a
fix: shader loading errors
ashifolfi Mar 29, 2024
4a8a2ea
fix: why did it add that using statement
ashifolfi Mar 29, 2024
67d3de6
fix: more shader loading/parsing errors
ashifolfi Mar 29, 2024
090df87
fix: invalid preprocessor def in shader loading
ashifolfi Mar 29, 2024
0082cec
fix: scenesystem defaults scale to zero
ashifolfi Mar 29, 2024
6832e17
fix: broken locations in shader code
ashifolfi Mar 29, 2024
82b9429
feat: spinning cube using renderable and matsys
ashifolfi Mar 29, 2024
44134de
fix: camera not being set in renderer
ashifolfi Mar 29, 2024
6b80591
fix: proper controls
ashifolfi Mar 29, 2024
9c64c74
feat: more movement controls
ashifolfi Mar 29, 2024
03ffb7c
fix: temp fix for matsys loading code
ashifolfi Mar 29, 2024
9c37b23
feat: dispose collector for resources
ashifolfi Mar 29, 2024
ae1930b
feat: materialsystem works now
ashifolfi Mar 29, 2024
7bc99c7
feat: ensure scenesystem GCs everything on shutdown
ashifolfi Mar 29, 2024
1146467
feat: imgui panel adjustments
ashifolfi Mar 29, 2024
2a80bb1
del: RenderObject system
ashifolfi Mar 29, 2024
6dabfb3
Merge pull request #8 from Team-Fennec/feat/render-system
ashifolfi Mar 29, 2024
415fa77
feat: improvements to input system
ashifolfi Mar 29, 2024
4d45190
update engine to use new method of blocking inputs
ashifolfi Mar 29, 2024
6b30260
Merge pull request #9 from Team-Fennec/feat/mouse-input
ashifolfi Mar 29, 2024
c455bcb
remove imgui panel showing position and rotation
ashifolfi Mar 29, 2024
4b87e38
feat: freecam mouse look
ashifolfi Mar 29, 2024
806126e
feat: better framerate calculations
ashifolfi Mar 29, 2024
4e7b314
feat: glb model loading
ashifolfi Mar 30, 2024
bec1036
Update README.md
ashifolfi Mar 30, 2024
8817736
feat(mathlib): add joint and weight fields
ashifolfi Mar 30, 2024
a3b5b0a
feat: load language files based on GI info
ashifolfi Mar 30, 2024
f3e29c0
feat: update renderer and shaders to new vertex format
ashifolfi Mar 30, 2024
6a1b15e
feat: WIP IQM support (glb is annoying)
ashifolfi Mar 30, 2024
8cac46c
feat: (still wip) IQM reading
ashifolfi Mar 31, 2024
5ae060b
feat: IQM support (hopefully)
ashifolfi Apr 1, 2024
8a775f6
feat: read IQMMesh into MeshPrimitive
ashifolfi Apr 1, 2024
3ff2a53
fix: error in MD3 code
ashifolfi Apr 1, 2024
28be603
feat: IQM loading (partial)
ashifolfi Apr 1, 2024
4cb66f6
fix: let go of texture stream after creating texture data
ashifolfi Apr 1, 2024
8a33530
feat: modelresource base class
ashifolfi Apr 1, 2024
d240398
feat: functional rendering of IQM
ashifolfi Apr 2, 2024
10ea5ac
feat: block mouse position updates when not processing inputs
ashifolfi Apr 4, 2024
e686688
feat: swap to uint for indices
ashifolfi Apr 4, 2024
7ed3488
feat: multiple model ents in test scene
ashifolfi Apr 4, 2024
7948290
fix: IndexFormat in spinning cube
ashifolfi Apr 4, 2024
7c5250c
chore: increment version number
ashifolfi Apr 4, 2024
b467024
chore: version all modules
ashifolfi Apr 4, 2024
a4139bb
feat: improve logger and gameconsole setup
ashifolfi Apr 4, 2024
0441df6
chore: readme updates
ashifolfi Apr 4, 2024
d975c2d
feat: shader compiler script
ashifolfi Apr 5, 2024
3b8358d
chore: add compiled shaders to gitignore
ashifolfi Apr 5, 2024
79fb36c
feat: upgrade to powershell 7.x syntax
ashifolfi Apr 5, 2024
3c90eca
chore: update gitattributes
ashifolfi Apr 5, 2024
2726367
Create CODE_OF_CONDUCT.md
ashifolfi Apr 5, 2024
e5bcbb3
Update README.md
ashifolfi Apr 5, 2024
048c867
chore: the year is 2024
ashifolfi Apr 5, 2024
9016116
wip: C style macros
ashifolfi Apr 5, 2024
6177328
Merge branch 'main' of https://github.com/Team-Fennec/WinterEngine
ashifolfi Apr 5, 2024
47c3d83
feat: base material editor tool
ashifolfi Mar 25, 2024
f073259
adjustments to build and testgame resource
ashifolfi Mar 25, 2024
a5e4406
feat: retained mode dev gui
ashifolfi Apr 5, 2024
93e2279
oh great it forcably caused a merge conflict over things that didn't …
ashifolfi Apr 5, 2024
9d1b57b
feat: more work on veneer
ashifolfi Apr 6, 2024
0f6fd68
wip: config system
ashifolfi Apr 13, 2024
befbe77
edits to resource files
ashifolfi Apr 13, 2024
253dae9
feat: more work on models
ashifolfi Apr 13, 2024
ba2ccea
feat: functional tools framework
ashifolfi Apr 14, 2024
aff8eb7
model conf tool got moved somehow
ashifolfi Apr 14, 2024
e1fd417
edits to tools code
ashifolfi Apr 14, 2024
0f2a760
feat: expanded model config editor window
ashifolfi Apr 14, 2024
93368b2
feat: linux dll for libvpkeditc
ashifolfi Apr 14, 2024
44ee236
fix: restore previous color after printing
ashifolfi Apr 14, 2024
b92f56d
feat: prefer vulkan on linux
ashifolfi Apr 14, 2024
a58d632
feat: modifications to tool setup
ashifolfi Apr 14, 2024
d5321c8
fix: generate version class props
ashifolfi Apr 14, 2024
508b197
feat: console tool
ashifolfi Apr 14, 2024
d83f087
feat: Basic material editor window
ashifolfi Apr 14, 2024
e6d3f5c
fix: console tool newline
ashifolfi Apr 14, 2024
413eeca
feat: add icons to all tools
ashifolfi Apr 14, 2024
e479d87
enable material editor
ashifolfi Apr 14, 2024
1fa51af
refactor: DRYer project setup
ashifolfi Apr 14, 2024
8cd1d75
fix: errors in standalone utilities
ashifolfi Apr 14, 2024
a47785e
embed font within logob.svg
ashifolfi Apr 14, 2024
8c17627
chore: increment engine version
ashifolfi Apr 14, 2024
1a9f247
fix: code smells part 1
ashifolfi Apr 14, 2024
cfdad4e
code smells part 2
ashifolfi Apr 14, 2024
63195c0
feat: add base files and code for chisel
ashifolfi Apr 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,5 @@
*.gi linguist-vendored
*.vdf linguist-vendored
*.dmx linguist-vendored
*.iqm linguist-vendored
*.smd linguist-vendored
8 changes: 8 additions & 0 deletions Branding/LogoB.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Branding/LogoNoText-Low.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Branding/LogoNoText.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
96 changes: 96 additions & 0 deletions Branding/LogoNoText.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Branding/gh_screenshots/testgame_01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
128 changes: 128 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
anticream39@yahoo.com.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
2 changes: 2 additions & 0 deletions Game/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# ignore compiled shaders
*.spv
2 changes: 1 addition & 1 deletion Game/engine/materials/black.wmat
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<--! dmx encoding keyvalues2 1 format wintermat 1 -->
<!-- dmx encoding keyvalues2 1 format wintermat 1 -->
"DmeMaterial"
{
"id" "elementid" "135055e1-b16a-4ea8-9ce7-da8e64278e36"
Expand Down
Binary file added Game/engine/materials/engine/error.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions Game/engine/materials/engine/error.wmat
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<!-- dmx encoding keyvalues2 1 format material 1 -->
"DmeMaterial"
{
"id" "elementid" "fb1ff175-c3c2-4512-9d85-e7cd33810b01"
"name" "string" "material"
"shader" "string" "UnlitTextured"
"basetexture" "string" "engine/error.png"
}
2 changes: 1 addition & 1 deletion Game/engine/materials/engine/missing.wmat
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<--! dmx encoding keyvalues2 1 format material 1 -->
<!-- dmx encoding keyvalues2 1 format material 1 -->
"DmeMaterial"
{
"id" "elementid" "17cc68fc-e698-44db-8f65-6f7b0855cb2b"
Expand Down
2 changes: 1 addition & 1 deletion Game/engine/materials/tools/invisible.wmat
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<--! dmx encoding keyvalues2 1 format material 1 -->
<!-- dmx encoding keyvalues2 1 format material 1 -->
"DmeMaterial"
{
"id" "elementid" "4cd111ab-263f-4ce8-b676-0fafa0588890"
Expand Down
2 changes: 1 addition & 1 deletion Game/engine/materials/tools/trigger.wmat
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<--! dmx encoding keyvalues2 1 format material 1 -->
<!-- dmx encoding keyvalues2 1 format material 1 -->
"DmeMaterial"
{
"id" "elementid" "e3c74e92-07d8-421f-8cf8-0ecd6c1dd56a"
Expand Down
2 changes: 1 addition & 1 deletion Game/engine/materials/white.wmat
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<--! dmx encoding keyvalues2 1 format wintermat 1 -->
<!-- dmx encoding keyvalues2 1 format wintermat 1 -->
"DmeMaterial"
{
"id" "elementid" "d933d02d-ff0f-485b-af6e-84ce518d184d"
Expand Down
Binary file added Game/engine/models/engine/error.glb
Binary file not shown.
Binary file removed Game/engine/models/engine/error.md3
Binary file not shown.
2 changes: 1 addition & 1 deletion Game/engine/resource/ToolsScheme.res
Original file line number Diff line number Diff line change
Expand Up @@ -74,4 +74,4 @@
"SliderGrab" "IcyTrans"
"SliderGrabActive" "Icy"
}
}
}
Binary file added Game/engine/resource/tools/splash_base.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Game/engine/resource/tools/splash_yield.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 13 additions & 0 deletions Game/engine/shaders/Imgui.glsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#version 450

#include "webase.glsl"

#cull_mode None
#depth_test false

#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_420pack : enable

VERTEX:

FRAGMENT:
13 changes: 10 additions & 3 deletions Game/engine/shaders/UnlitTextured.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,17 @@ VERTEX:

void main()
{
vec4 worldPosition = World * vec4(v_Pos, 1);
// joint/weight reference:
// https://github.khronos.org/glTF-Tutorials/gltfTutorial/gltfTutorial_020_Skins.html
mat4 skinMat =
v_Weight.x * Joints[int(v_Joint.x)] +
v_Weight.y * Joints[int(v_Joint.y)] +
v_Weight.z * Joints[int(v_Joint.z)] +
v_Weight.w * Joints[int(v_Joint.w)];

vec4 worldPosition = World * skinMat * vec4(v_Pos, 1);
vec4 viewPosition = View * worldPosition;
vec4 clipPosition = Projection * viewPosition;
gl_Position = clipPosition;
gl_Position = Projection * viewPosition;
fsin_texCoords = v_Uv;
fsin_Color = v_Col;
}
Expand Down
2 changes: 1 addition & 1 deletion Game/engine/shaders/UnlitVertexColored.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,5 @@ FRAGMENT:

void main()
{
fsout_color = fsin_Color;
fsout_color = fsin_Color;
}
5 changes: 5 additions & 0 deletions Game/engine/shaders/include/Buffers.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,8 @@ layout(set = 0, binding = 2) uniform WorldBuffer
{
mat4 World;
};

layout(set = 0, binding = 3) uniform JointBuffer
{
mat4 Joints[32];
};
10 changes: 7 additions & 3 deletions Game/engine/shaders/include/webase.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,16 @@
// if you change this, change the vertex layout as well
layout(location = 0) in vec3 Position;
layout(location = 1) in vec3 Normal;
layout(location = 3) in vec4 Color;
layout(location = 4) in vec2 TexCoords;
layout(location = 2) in vec4 Color;
layout(location = 3) in vec2 TexCoords;
layout(location = 4) in vec4 Joint;
layout(location = 5) in vec4 Weight;
#define v_Pos Position
#define v_Norm Normal
#define v_Col Color
#define v_Uv TexCoords
#define v_Joint Joint
#define v_Weight Weight

layout(location = 0) out vec4 fsin_Color;
layout(location = 1) out vec2 fsin_texCoords;
Expand All @@ -25,7 +29,7 @@
layout(location = 1) in vec2 fsin_texCoords;
layout(location = 0) out vec4 fsout_color;

layout(set = 0, binding = 3) uniform sampler SurfaceSampler;
layout(set = 0, binding = 4) uniform sampler SurfaceSampler;
#endif

// param types, wrapped just for linguistic convenience
Expand Down
6 changes: 4 additions & 2 deletions Game/enginetools.vdf
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
"EngineTools"
{
// no tools currently
}
"dll" "console"
"dll" "modeleditor"
"dll" "materialeditor"
}
Loading
Loading