Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
fc6ed42
Update README.md to include lighting compatibility information for ga…
VELD-Dev Jul 30, 2026
ed290df
Add lightmap UV support for ties and enhance texture handling
VELD-Dev Jul 31, 2026
a5aa2cb
Add lightmap UV support for ties and enhance texture handling (#41)
VELD-Dev Jul 31, 2026
7d225e0
Bump version to 0.04.2 in ProgramInfo.cs
VELD-Dev Jul 31, 2026
35e9411
Add foliage support with loading and rendering capabilities
VELD-Dev Jul 31, 2026
bc172e0
Add Markdown renderer for in-app changelog display and enhance update…
VELD-Dev Aug 2, 2026
bdde78a
Add cubemap support with loading, rendering, and reflection controls
VELD-Dev Aug 2, 2026
c72bf93
Add foliage and cubemap support, enhance changelog display (#42)
VELD-Dev Aug 2, 2026
d79b3d1
Added directional and diffuse light data reading and implemented in r…
VELD-Dev Aug 3, 2026
ea46524
Add Font Awesome icons support and integrate into ImGui labels
VELD-Dev Aug 3, 2026
de7afd3
Fixed segfault when opening assets in the asset viewer
VELD-Dev Aug 4, 2026
bbba45a
Add usage filter to Shader Browser for improved shader management
VELD-Dev Aug 5, 2026
60b26c8
New renderer + frame profiling
VELD-Dev Aug 7, 2026
86f2b1d
Changed RFOM compatibility state
VELD-Dev Aug 9, 2026
4a9c71d
Changed slightly README.md
VELD-Dev Aug 9, 2026
4151665
Started reworking render pipeline to match original game's pipeline.
VELD-Dev Aug 10, 2026
ee977f1
Implement the game's 7 render modes from the EBOOT reverse
VELD-Dev Aug 10, 2026
f2bdf18
edited gitignore
VELD-Dev Aug 10, 2026
0b35b2f
Wire foliage assets to their old-engine texture via direct index
Fianshoo Aug 25, 2026
447111e
Retire Bliss, and pipeline the frame loop it was holding back
VELD-Dev Aug 27, 2026
24dbc7d
Merge branch 'new-renderer' into foliage-texture-linking
VELD-Dev Aug 27, 2026
c65c3b2
Wire foliage assets to their old-engine texture via direct index (#44)
VELD-Dev Aug 27, 2026
8bce913
Fix picking, level-load stalls, and rendering correctness bugs
VELD-Dev Aug 28, 2026
86761e7
New renderer, v0.05 (#46)
VELD-Dev Aug 28, 2026
a52e078
Dev (#47) New renderer, v0.05
VELD-Dev Aug 28, 2026
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
8 changes: 4 additions & 4 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Mirrors VELD-Dev/Riftripper's nightly workflow: every push to `nightly` builds Windows + Linux
# artifacts and publishes/updates them under a single rolling "Nightly Builds" GitHub release
# (tag `nightly`), accumulating every nightly build's artifacts there rather than replacing them
# (replacesArtifacts: false below) the running app's UpdateChecker (Nightly channel) picks the
# (replacesArtifacts: false below) - the running app's UpdateChecker (Nightly channel) picks the
# newest artifact per platform out of that list by filename.

name: Nightly Releases
Expand All @@ -14,14 +14,14 @@ jobs:
build:
name: Nightly Builds

# ncipollo/release-action needs write access to create/update the `nightly` release without
# ncipollo/release-action needs write access to create/update the `nightly` release - without
# this, it inherits the default GITHUB_TOKEN, which many repos/orgs now default to read-only,
# and the create/update call fails with "403: Resource not accessible by integration".
permissions:
contents: write

strategy:
# max-parallel: 1 serializes Windows/Linux both jobs publish to the same rolling `nightly`
# max-parallel: 1 serializes Windows/Linux - both jobs publish to the same rolling `nightly`
# release tag via ncipollo/release-action, and on the very first run (before that release
# exists) two parallel "create" calls race and one gets a 422. Serial runs cost wall time but
# this workflow only fires on nightly pushes, so it's not latency-sensitive.
Expand Down Expand Up @@ -59,7 +59,7 @@ jobs:
echo "commit_hash=$commit_hash" >> "$GITHUB_ENV"
echo "build_date=$build_date" >> "$GITHUB_ENV"

# NightlyBuildInfo.cs is checked in with both consts null (every other build) this run
# NightlyBuildInfo.cs is checked in with both consts null (every other build) - this run
# is the one place they get filled in, matching what UpdateChecker.CheckNightly extracts
# back out of the artifact filename below to compare against.
cat > ReLunacy/NightlyBuildInfo.cs <<EOF
Expand Down
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@
*.zip
recovery

# Locally-built NuGet packages (patched Veldrith 1.2.19)
LocalPackages/

# Other files
*.rdc # RenderDoc captures
.claude/
dev/
dev/
/nuget.config
45 changes: 44 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,49 @@
This file lists all the changes of every version. This file is edited constantly during the development, in order not to forget what have been done for X or Y version. It's better to keep it up to date on dev branch.
Because the European date format is better, please keep date format like this: `DD-MM-YYYY`.

## [v0.05](https://github.com/VELD-Dev/ReLunacy/releases/0.05) - 28-08-2026

### Overview

Lighting is finally **FULLY OPERATIONAL** on Pre-ACIT games ! As detailed in the previous patchnotes, the
shader is 100% faithful to the original game, it's because it's actually based off the actual game shader,
extracted thanks to RenderDoc. This update comes with a brand new renderer (again), working only in Vulkan
this time (no OpenGL, sorry old PCs). Thanks to Vulkan I was able to add the exact same render pipeline than
the original game (threaded Frustum Culling, multi passes for transparency types, etc.), and it comes with HUGE
performance improvements thanks to that. For more details, see under !

### Details

- Added lighting for Ties and Mobys too
- Added the game's own analytic level lighting (ambient + two directional lights, straight from the level data) as the fallback light rig for surfaces with no bake of their own
- Added cubemaps support (for reflections). Works at least for ToD.
- Added Foliages support for Pre-ACIT games
- New render system working on Vulkan:
- Better transparency, Anti-aliasing, threaded rendering & culling, register-once scene...
- Huge performances improvements (over 560% gain)
- Render pipeline of the original engine (+ custom ones for ReLunacy specific stuff), including the game's real 7 render modes (Opaque/Cutout/Overlay/Additive/Scunge/Soft-Edge/Blended) with their actual blend and alpha-test states, reversed straight from the EBOOT - this also fixed Scunge (glass, decals) rendering fully solid instead of blending
- Threaded asset loading: cut the post-disk-load freeze on a large level from ~14s down to ~5s
- Frame pipelining: CPU recording and GPU execution now overlap across frames, instead of the CPU immediately waiting on the previous frame's fence right after submitting it
- Unified viewport input handling (which of the overlay/gizmo/picking/camera gets a click) across the 3D View and Asset Viewer
- Fixed a large Tie frustum-culling error that could clip visible geometry at the edges of the screen
- Added a better `Frame Profiler` frame (performances debug)
- Added `Level Data` frame (including instances count, assets count, and light sources)
- Added an in-app Markdown renderer, used to show this changelog straight from the Update Info frame
- Added Font Awesome icons to parts of the UI
- Added Moby Distance culling and Moby Update distance (used by Luna Engine, not ReLunacy)
- Added Texture, Assets and Shaders browse filter (Filter by usage - used/unused - or other asset-specific filters)
- Selection is now pixel-perfect (easier to select volumes), and foliage instances can now be picked too
- Changed `.obj` export to write into its own per-asset subfolder, same as the separate `.gltf` export already did, instead of dumping every export into one shared folder
- Fixed freeze when loading level by threading assets upload to GPU.
- Fixed textures being read only from `textures.dat` (low-res) instead of `texstream.dat`. It was essentially impacting mobys.
- Fixed UVs for model exportation to `.obj`. They were upside down.
- Fixed vertex alpha on transparent materials: it's now multiplied with the texture's own alpha instead of replacing it, applies to every transparent render mode instead of only textures with no alpha channel of their own, and Mobys no longer misread their bone index as vertex alpha the way Ties/UFrags legitimately do (Mobys carry a real bone index there)
- Fixed foliage sprites on old-engine levels not showing their texture (was resolved indirectly instead of through a direct index into the old texture table)
- Fixed a segfault when opening certain assets in the Asset Viewer
- Fixed GPU buffer picking (clicking to select in the 3D View) silently not working, due to an input event-ordering bug
- Fixed Moby Cull Distance and Update Distance being read from swapped file offsets
- Fixed `3D View` being reset when closed and reopened.

## [v0.04.1](https://github.com/VELD-Dev/ReLunacy/releases/0.04.1) - 30-07-2026

[View diff](https://github.com/VELD-Dev/ReLunacy/compare/0.04..0.04.1)
Expand Down Expand Up @@ -94,7 +137,7 @@ actual maths. **It's a first step to a replica of ToD** *(and QfB)* **visuals !*
- Added `.gltf`/`.glb` and `.obj` model export (with `.mtl`/`.png`), including a new whole-level export (`Export Level`) that bundles every placed instance into a single scene file. Export runs in the background with a progress modal and an "open containing folder" action when done. Mobys with skeletons now always export as static/rigid meshes at level scope (this avoids a crash from colliding bone names across placed instances) and the exported level file is named after the level's own folder instead of the raw `level_cached`/`level_uncached` archive filename.
- Added skinned-mesh/skeleton export support (joint extraction, bone-weighted meshes) for single-asset exports.
- Implemented a custom `DecalAwareForwardRenderer`, fixing z-fighting on alpha-blended decal textures (moss/vines painted onto terrain) by disabling depth *writes* (while keeping depth *testing*) for translucent geometry instead of Bliss's default renderer, which hardcoded depth writes for everything.
- Implemented Moby per-instance render/display distance culling (reverse-engineered from real gameplay data), toggleable from the Render menu off by default since the free-fly editor camera doesn't share the game's player-anchored camera assumptions.
- Implemented Moby per-instance render/display distance culling (reverse-engineered from real gameplay data), toggleable from the Render menu - off by default since the free-fly editor camera doesn't share the game's player-anchored camera assumptions.
- Added Volume selection in the 3D viewport: proper GPU-buffer picking against the volume's actual wireframe edges (not a solid hitbox, so clicking empty interior space no longer selects a volume), with configurable wire thickness and unselected/selected colors in Editor Settings, and volume metadata (ID/group) now shown in the Property Inspector.
- Added a configurable Selection Outline color in Editor Settings.
- Expanded supported texture formats (R8, A1R5G5B5, RGBA4, RGBA16F, BC4, BC5, G8B8), fixed imprecise RGB565 channel expansion, and added linearization handling for Morton-swizzled textures.
Expand Down
Loading
Loading