Skip to content

Releases: francesctr4/Ymir-Engine

A3 - Shader Pipeline

Choose a tag to compare

@francesctr4 francesctr4 released this 07 Jan 16:58

v0.3 - Shader Pipeline

Shader Pipeline

  • The engine uses a shader pipeline to draw geometry.
  • Shader Editor: open your shaders or create new ones on runtime with a text editor.
  • Shader Hot Reload: Editing a shader in-engine automatically compiles and applies the changes.
  • Shader compile error lines and messages are shown in the editor (Console Window).
  • Dynamic Shader Uniform Detection & Modification: uniform values are dynamically read from the shader and can be edited from the inspector.
  • The shader editor is actually functional and can be used to create shaders and test them on runtime.
  • New shaders can be applied to materials with the editor.
  • Engine keeps track of loaded shaders to change between them when necessary on gameobjects materials.
  • Ymir Engine's default shader ("MyShader.glsl") is applied on GameObjects that don't have any texture or any specific shader attached.
  • Water Shader: Flat mesh (plane) that should simulate simple water.
    • Vertex Shader: Simple wave movement.
    • Fragment Shader: The color of the pixels changes based on its height (blue on the bottom, white on the top).

Additional functionality (Cool features!)

  • Apart from the water shader, there are more shaders included (all of them created and tested on the engine itself):

Lava Shader

Lava Shader

Rainbow Shader

Rainbow Shader

Color Shader

Color Shader

Information about the engine and instructions available in the README.md file, inside the zip.

A2 - Engine Editor

Choose a tag to compare

@francesctr4 francesctr4 released this 09 Dec 16:57

v0.2 - Engine Editor

Engine Editor

  • The ‘Street Environment’ scene is automatically loaded at the start.
  • The user is be able to use the inspector to modify a GameObject:
    • Hierarchy: delete, reparent, create empty and create children.
    • Transform: translate, rotate and scale GameObjects.
    • 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.
  • Models, meshes and textures are saved to Ymir Engine format under “Library” folder.
  • Scene is serialized to a file that can be loaded.
  • The user can Start / Pause / Stop the simulation and recover its original state.
  • The editor has 2 windows:
    • One with the scene (Editor view).
    • Another one captured from a GameObject with a camera component (Main Game Camera).
    • Each one has its own framebuffer and the user can visualize both at the same time.
  • Resource Management:
    • Assets Window that shows all user assets.
    • The user can drop/import new files. Assets window reacts properly.
    • On first use, the temporal folder Library is created and meta files are generated for each new imported asset.
    • Library can be regenerated if deleted.
    • The imported assets are saved in Library folder with Ymir Engine custom file format.

Additional functionality (Cool features!)

  • There is a space skybox by default. In the folder Assets/Skybox there is more skybox textures in case you want to test several environments.
  • The Assets and Library Windows have some files highlighted on blue, you can interact with them to read the contents inside the engine.
  • When you select a GameObject, the shader makes an orange highlight to the mesh.
  • There is an option in Inspector -> Mesh Component to turn on/off the Normal Map of the selected Mesh (done by shader).
  • The Gizmo has been implemented and can be used to manage GameObjects' transformations.
  • The shaders now can be loaded using a single file instead of separating Vertex Shader and Fragment Shader.
  • Added Node Editor for future material editing with shaders.

Information about the engine and instructions available in the README.md file, inside the zip.

A1 - Geometry Viewer

Choose a tag to compare

@francesctr4 francesctr4 released this 01 Nov 20:37
c9c378f

v0.1 - Geometry Viewer

Geometry Viewer

  • Baker House automatically loaded at the start.
  • Two models provided in FBX format with one channel diffuse texture.
  • Drag&Drop of FBX files from anywhere in the Hard Drive.
  • Drag&Drop of DDS/PNG files (apply the texture to the selected GameObject).
  • GameObject structure, one for each loaded mesh.
  • Three components available for the GameObjects: Transform, Mesh and Material.
  • Unity-like camera controls.
  • Editor Windows:
    • Console: Show LOGs.
    • Configuration:
      • A graph for the frames per second.
      • Configuration for variables on each module (renderer, window, input, textures).
      • Information output of memory consumption and hardware detection.
      • OpenGL configuration.
      • ...and more!
    • Hierarchy: list with all GameObjects with tree structure. The user is able to select a GameObject through this window.
    • Inspector: displays information about the components of the selected GameObject.
  • About Modal Window to get info about the engine.
  • Menu to load basic shapes.

Additional functionality (Cool features!)

  • Early Shader Implementation for Rendering Geometry with VAO (Vertex Shader and Fragment Shader).
  • Apply Transformations to Geometry with the Transform Component (Translation, Rotation and Scale).
  • Custom Icon Uploaded to the Engine Executable.
  • Extensive primitive library inside the engine on GameObject menu.

Information about the engine and instructions available in the README.md file, inside the zip.