Commit graph

13 commits

Author SHA1 Message Date
0192db3f67 Implement shape keys, vertex modifier support. Fix related bugs. 2024-12-16 21:02:13 +01:00
2caf78c88a Mesh: Fix vertex_count, vertex_array in newMesh. Fix add_polygonal_line() 2024-11-30 00:48:43 +01:00
893208f4c2 Add docstrings to gameobject, mesh, light, camera, scene, screen, attributes. 2024-11-30 00:17:06 +01:00
29e4735626 Util: Remove unused JS functions, add min/max(vec), improve remove, add docs. 2024-09-21 02:21:25 +02:00
40b70003ec GameObject: Document many of its functions.
Also rename `get_dimensions` to `get_local_dimensions`, add
`get_world_dimensions` for consistency, and add `children_recursive_and_self`.
2024-09-21 02:19:44 +02:00
f71ae37821 GameObject: Fix rotation in get_local_matrix. 2024-09-21 02:16:39 +02:00
dca0123f13 Fix many issues related to shadows. 2024-09-21 02:09:22 +02:00
8075edf619 Prevent mem leaks with destructors for all GPU objects and other measures. 2024-09-13 02:37:02 +02:00
c77187fa9f Revamp shadow map system into a working state. Fix related bugs.
* `light.configure_shadow` has been added. It can either use a camera frustum or
  calculate the bounds for a static shadow that doesn't need to be updated every
  frame.
* `Light` and `newLight` have `use_shadow`, however it's not used automatically
  at the moment. Instead you should call `configure_shadow`.
* Added `updateShadowStorage` which at the moment has to be called manually
  after using `configure_shadow`.
* All shadows now share a single texture array per scene, so they can be
  accessed by index in the shader and take less shader locations and draw calls.
* Shadow map resolution is also global per scene.
* Add `set_texture_shadow` and `unset_texture_shadow` to configure a texture as
  shadow sampler.
* Bias has been removed as an option, it's calculated automatically instead.
* Bias now moves along the normal of the mesh instead of towards the light,
  allowing very small biases.
2024-09-11 20:49:00 +02:00
f1768275f4 Remove elvis and replace remaining nimble dependencies by git submodules. 2024-08-23 00:37:45 +02:00
40276c443b Update cubemap probes automatically. 2024-08-21 21:19:18 +02:00
924fa2413a Register loaders and add engine.loadScene that chooses the appropriate loader. 2024-08-21 19:22:22 +02:00
9af1322937 First commit.
* Incomplete port of myou-engine-js to nimskull, after many months of work, and
  a few extra features that weren't exactly necessary for a "first commit" to
  work. Excuse the lack of commit history up to this point.
* Bare bones structure of the documentation and the process to update it.
* Restructure of the whole project to have a more sensible organization.
* Making submodules of forks of larger libraries.
* README, licenses, AUTHORS.md.
2024-08-20 13:08:19 +02:00