Releases: boscobarberesbert/Ko-Fi-Engine
Releases · boscobarberesbert/Ko-Fi-Engine
Ko-Fi Engine v3.0 High-Level System
Overview
For our third release the goal is to adapt the engine to a shaders pipeline. All our meshes are now rendered using shaders
Content
- We have implemented an in-engine text editor.
- You can now create shaders from the assets window, you can double click any .glsl/.txt/.mat/.milk file and open it in our brand new text editor.
- You can save and open your files to the text editor.
- Now in the inspector under the Component material menu you can add textures that you can then use in your shaders, you can modify the uniform types from your shaders in the inspector with an intuitive interface.
- The errors from your shaders appear in the log window on our engine.
- We have created for you to test a water shader and a default shader with an albedo texture and tint.
- Editing a shader in-engine now automatically compiles and applies the changes.
- New shaders can be applied to the materials in the inspector.
Known Issues 🚧🚧
- Primitives do not work at the moment
- Frustum culling does not work after the shaders implementation due to projection rework.
- Text editor sometimes goes crazy and keeps the delete action active. Text editor has problems with ctrl commands.
- Importing objects from the assets directly can cause hierarchy selection problems
Ko-Fi Engine v2.0 Beta
Overview
For our second assignment the goal is to remove our dependency from FBX for running our games,
organize resources coherently and apply the minimal optimizations of a graphics engine (frustum culling).
Content
- The ‘Street Environment’ scene is automatically loaded at the start.
- The user is able to use the inspector to modify a GameObject:
- Hierarchy: delete, reparent, create empty and create children.
- Transform: translate, rotate and scale Game Objects.
- Mesh: select or drop any imported mesh.
- Texture: select or drop any imported texture.
- Camera is a component with settings that can be modified.
- GameObjects can be picked from the world using the mouse.
- All meshes use a bounding volume (AABB) and can be discarded using Frustum Culling. This process is visualized in the editor (debug raycast and boxes).
- Models, meshes and textures are saved to our own format under “Library” folder.
- Scene can be serialized to a file that can be loaded.
- The user can Start / Pause / Stop the simulation and recover its original state.
- Resource Management:
- There is an “Assets” window that shows all user assets.
- *as a simple tree viewer
- The user can drop/import new files. Assets window reacts properly.
- Asset files can be deleted through the window and /Library entries are removed.
- Upon start, all resources not managed inside Assets are generated in Library.
- */Library folder is regenerated from /Assets + meta content
- All resources use reference counting (e.g. a texture / mesh is only once in memory regardless of how many gameobject use it). This process is visualized in the editor.
- There is an “Assets” window that shows all user assets.
Ko-Fi Engine v1.0 Alpha
Overview
We aim to deliver a simple geometry viewer supporting drag and drop and orbital camera. The final release loads the provided model (baker_house.zip) plus two other models of our choice.
Content
- Baker_house automatically loaded at the start.
- Two models in FBX format with one channel diffuse texture.
- It accepts drag&drop of FBX files from anywhere in the Hard Drive.
- It accepts drag&drop of DDS/PNG files (apply the texture to the selected GameObject).
- GameObject structure, one for each loaded mesh. Each GameObject has, at least, 3 display-only components: Transform, Mesh and Texture.
- It features Unity-like camera controls:
- While Right clicking, “WASD” fps-like movement and free look around is enabled.
- Mouse wheel to zoom in and out.
- Alt+Left click to orbit the object.
- Pressing “f” focus the camera around the geometry.
- Holding SHIFT duplicates movement speed.
- Editor Windows:
- Console: the window LOGs the geometry loading process from ASSIMP and the external libraries initialization process.
- Configuration:
- A graph for the frames per second.
- Configuration for all variables on each module (renderer, window, input, textures).
- Information output of memory consumption, hardware detection and software versions (SDL, OpenGL, DevIL).
- Hierarchy: display a list with all GameObjects in this window. The user is able to select a GameObject through this window.
- Inspector: display information about the components of the selected GameObject
- Transform: only for display purposes. Show position, rotation and scale for the selected GameObject.
- Mesh: information about the loaded mesh. There is an option to display its normals (per-triangle and per-face).
- Texture: display texture size and path. There is an option to view the selected GameObject with the checkers texture.
- There is a general menu with an option to quit, visit the github page and get info about the engine (“About”). It should also be able to turn on/off editor windows.
- There is a menu to load your own basic shapes.