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

New rendering system #6

Open
2 of 5 tasks
redstrate opened this issue Apr 28, 2024 · 1 comment
Open
2 of 5 tasks

New rendering system #6

redstrate opened this issue Apr 28, 2024 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@redstrate
Copy link
Owner

I have begun work on a new rendering system, here's the current progress below:

Screenshot_20240427_211258

Instead of writing shaders that appear like the game, this closely emulates the original game's look by using the game's own material and shader systems. You can turn this on for any rendering-capable Novus tool, by using the NOVUS_USE_NEW_RENDERER=1 environment variable.

Here's a list of shaders that are currently supported:

  • Shader package support
    • character.shpk
    • skin.shpk
    • iris.shpk
    • hair.shpk

Dawntrail support is WIP, I'm trying to get at least the characterlegacy.shpk (which is presumably ARR's character.shpk) to work first before moving onto character.shpk. I also want to try launching older benchmarks and see what breaks too.

@redstrate redstrate added the enhancement New feature or request label Apr 28, 2024
@redstrate redstrate self-assigned this Apr 28, 2024
@redstrate
Copy link
Owner Author

redstrate commented Apr 28, 2024

I hastily put together Dawntrail support now, you need to enable it via NOVUS_IS_DAWNTRAIL=1 until I can detect it automatically.

I used crcracker to figure out some of the new keys:

let KNOWN_KEYS: HashMap<u32, &str> = HashMap::from([
    // scene keys
    (0x82292c76, "CalculateInstancingPosition_On"),
    (0xa657de89, "ApplyVertexMovementOn"),
    (0x9c14c8e9, "TransformViewSkin"),
    (0xa655b184, "GetCustumizeColorAuraOn"),
    (0x19229fd6, "ApplyDissolveColorOn"),
    (0x61b0cf19, "ApplyDitherClipOn"),
    (0x802566a, "ApplyDitherClipOff"),
    (0x3a11b1b, "ApplyDissolveColorOff"),
    (0x867b5ced, "GetCustumizeColorAuraOff"),
    (0x4123b1a3, "TransformViewRigid"),
    (0xf8ca223f, "ApplyVertexMovementOff"),
    (0xd5ecb340, "CalculateInstancingPosition_Off"),

    (0x51edd496, "GetDirectionalLight_Enable"),
    (0xf101618c, "GetFakeSpecular_Enable3"),
    (0xaefb134c, "GetUnderWaterLighting_Enable"),
    (0xd73b9e89, "GetDirectionalLight_Shadow"),
    (0x8606511a, "GetFakeSpecular_Enable2"),
    (0x4c5e8831, "GetDirectionalLight_Disable"),
    (0x1f0f00a0, "GetFakeSpecular_Enable1"),
    (0x1bb2530e, "GetFakeSpecular_Disable"),
    (0x2aa7a53c, "GetUnderWaterLighting_Disable"),

    // subview keys
    (0xf43b2f35, "SUB_VIEW_MAIN"),
    (0xb18fe63d, "Default"),
    (0x66244231, "SUB_VIEW_CUBE_0"),
    (0x99b22d1c, "SUB_VIEW_SHADOW_0")
]);

Notably DepthBuffer and friends are gone. Apart from that not much has changed, but there's new parameters related to PBR. There's now stuff like "InstancingPosition" and "VertexMovement" most likely referring to new instance model support and grass physics movement?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant