Resources/Light Pointcloud: Difference between revisions
Appearance
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
* [[Games/Shadow Generations|Shadow Generations]]|tools=* [[Tools/KnuxTools|KnuxTools]] | * [[Games/Shadow Generations|Shadow Generations]]|tools=* [[Tools/KnuxTools|KnuxTools]] | ||
* [[Tools/AshDumpTool|AshDumpTool]]|status=Done|container=BINA|name=Light Pointcloud}} | * [[Tools/AshDumpTool|AshDumpTool]]|status=Done|container=BINA|name=Light Pointcloud}} | ||
'''Light Pointcloud''' is a fileformat used since [[Games/Sonic Frontiers|Sonic Frontiers]], that's used to place lights in a stage using a collection of instances with resource names. | '''Light Pointcloud''' is a fileformat used since [[Games/Sonic Frontiers|Sonic Frontiers]], that's used to place lights [[Resources/MIRAGE Light|(.light)]] in a stage using a collection of instances with resource names. | ||
== File Format == | == File Format == | ||
Line 12: | Line 12: | ||
* '''Instance name,''' to easily differentiate between different instance. | * '''Instance name,''' to easily differentiate between different instance. | ||
* '''Resource Name,''' to set the | * '''Resource Name,''' to set the [[Resources/MIRAGE Light|MIRAGE Light]] file name of the instance. | ||
* '''Position,''' straight forward. | * '''Position,''' straight forward. | ||
* '''Rotation,''' straight forward. | * '''Rotation,''' straight forward. |
Revision as of 19:48, 7 January 2025
Resource Type | Lighting |
---|---|
File Extension | .pcrt |
Used In Games | |
Container Format | BINA |
Editing Tools | |
Reverse Engineering Status | Done |
Light Pointcloud is a fileformat used since Sonic Frontiers, that's used to place lights (.light) in a stage using a collection of instances with resource names.
File Format
This is one of the many BINA file formats, meaning it's very easily memory-mappable.
The structure of this format is very simple, it contains a signature "CPIC", the version "2" (no instances have been found with the version 1) and the list of instances itself.
The structure of an instance is
- Instance name, to easily differentiate between different instance.
- Resource Name, to set the MIRAGE Light file name of the instance.
- Position, straight forward.
- Rotation, straight forward.
- Scale, straight forward.
- Unknown value.
Technical Info
Since this is a BINA file format, it's very easy to show this type in a struct/memory map it.
struct Instance{
const char* instanceName;
const char* resourceName;
csl::math::Position position;
csl::math::Position rotation;
int unk0;
csl::math::Position Scale;
long unk1;
};
struct PointcloudLight{
char signature[4];
uint version;
int instanceCount;
Instance* instances;
};