mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
cppkore uses string/wstring as StringBase while we use std::string/std::wstring as string/wstring. Changed all types in cppkore to String/WString instead.
65 lines
1.3 KiB
C++
65 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include "StringBase.h"
|
|
#include "DictionaryBase.h"
|
|
|
|
namespace Assets
|
|
{
|
|
// Represents the supported 3D material slots
|
|
enum class MaterialSlotType : uint32_t
|
|
{
|
|
// No valid mapping, but it's here
|
|
Invalid,
|
|
|
|
// Albedo color, different from diffuse
|
|
Albedo,
|
|
// Full color with lighing
|
|
Diffuse,
|
|
|
|
// Normal map, most likely XY compressed
|
|
Normal,
|
|
|
|
// Reflectivity
|
|
Specular,
|
|
|
|
// Glow / coloring
|
|
Emissive,
|
|
|
|
// Gloss is inverted roughness
|
|
Gloss,
|
|
// Roughness is inverted gloss
|
|
Roughness,
|
|
|
|
// Generalized lighting AO
|
|
AmbientOcclusion,
|
|
// More focused lighting AO
|
|
Cavity,
|
|
};
|
|
|
|
// Represents a 3D material and provided diffuse, normal, and specular images.
|
|
class Material
|
|
{
|
|
public:
|
|
// Initialize a new default material.
|
|
Material();
|
|
// Initialize a new material.
|
|
Material(const String& Name, const uint64_t Hash);
|
|
// Destroy all material info.
|
|
~Material() = default;
|
|
|
|
// The unique name for this material.
|
|
String Name;
|
|
|
|
// Name of the source identifier for this material.
|
|
String SourceString;
|
|
// Hash of the source identifier for this material.
|
|
uint64_t SourceHash;
|
|
|
|
// The material texture slots
|
|
Dictionary<MaterialSlotType, std::pair<String, uint64_t>> Slots;
|
|
|
|
// The unique hash identifier for this material.
|
|
uint64_t Hash;
|
|
};
|
|
} |