Geometry - UGEcko/Chroodle GitHub Wiki
Geometry
If you are looking for shader/keyword charts, go here.
This page is for general information about Heck Geometry in BeatSaber.
Covers:
- Types of Geometry
- Shader Keywords
- Geometry JSON and Properties
- Geometry Materials
Geometry Basics
Geometry in BeatSaber is based off Chroma, so no Noodle is required. However; if you'd like to animate geometry, you will need to use AnimateTrack
which does require Noodle Extensions.
"geometry": {
"type": "Cube",
"material": {}
}
In the difficulty file; Geometry has 2 properties: Type
, and Material
. We will cover the different Geometry Types, then Materials.
The types of Geometry are as follows:
- Sphere
- Capsule
- Cylinder
- Cube
- Plane
- Quad
- Triangle
With Geometry however, there are limitations, such as static primitives (ex: Large spheres will appear choppy / lack of subdivisions).
Material Properties
Say you want to create a black cube that reflects NO light, or you want to create a yellow shiny sphere. You do that with Geometry Materials!
Geometry materials can be created in two different ways:
- Directly in the geometry JSON - You define the material properties in the geometry object (Preferably when you arent pooling materials).
- Creating a geometry material - Create a geometry material and reference the name in the geometry material property (Like a point definition but for materials).
When you create a geometry material, it gets pushed to the materials
property in the difficulty file:
Materials:
"materials": {
"PillarMaterialWhite": {
"shader": "BTSPillar",
"color": [1,1,1],
"shaderKeywords": []
}
}
Geometry referencing the material:
"geometry": {
"type": "Cube",
"material": "PillarMaterialWhite"
}
If you are making a singular object, it may be your best interest to just directly define the material in the geometry:
"geometry": {
"type": "Cube",
"material": {
"shader": "BTSPillar",
"color": [1,1,1],
"shaderKeywords": []
}
}
Unfortunately, you cannot use any 3rd party shaders, however one of the provided shaders should surely do the trick.
Provided Shaders:
- Standard
- OpaqueLight
- TransparentLight
- BaseWater
- BillieWater
- BTSPillar
- InterscopeConcrete
- Obstacle (Borken)
- WaterfallMirror
These shaders aren't exclusive to specific environments, so BillieWater
will work on any environment, however some shaders have different circumstances so they may look off in other environments.