candlewick 0.9.0
A tiny cross-platform renderer based on SDL3
Loading...
Searching...
No Matches
MaterialUniform.h
Go to the documentation of this file.
1#pragma once
2
3#include "math_types.h"
4
5namespace candlewick {
6
8struct alignas(16) PbrMaterial {
9 GpuVec4 baseColor{1., 1., 1., 1.};
10 float metalness = 0.f;
11 float roughness = 1.0f;
12 float ao = 1.0f;
13};
14
16struct alignas(16) PhongMaterial {
18 GpuVec4 ambient{0.2f, 0.2f, 0.2f, 1.0f};
19 GpuVec4 specular{0.5f, 0.5f, 0.5f, 1.0f};
20 GpuVec4 emissive{0., 0., 0., 0.};
21 float shininess = 1.0f;
22 float reflectivity = 0.0f;
23};
24
27struct alignas(16) LambertMaterial {
29 GpuVec4 emissive{0., 0., 0., 0.};
30};
31
32} // namespace candlewick
Definition Camera.h:8
Eigen::Matrix< float, 4, 1, Eigen::DontAlign > GpuVec4
Definition math_types.h:19
Material for non-shiny objects, without specular highlights, using the non-physically based Lambert r...
Definition MaterialUniform.h:27
GpuVec4 diffuse
Definition MaterialUniform.h:28
GpuVec4 emissive
Definition MaterialUniform.h:29
PBR material for metallic-roughness workflow.
Definition MaterialUniform.h:8
float ao
Definition MaterialUniform.h:12
float roughness
Definition MaterialUniform.h:11
GpuVec4 baseColor
Definition MaterialUniform.h:9
float metalness
Definition MaterialUniform.h:10
Material parameters for a Blinn-Phong lighting model.
Definition MaterialUniform.h:16
GpuVec4 ambient
Definition MaterialUniform.h:18
GpuVec4 diffuse
Definition MaterialUniform.h:17
GpuVec4 specular
Definition MaterialUniform.h:19
float reflectivity
Definition MaterialUniform.h:22
float shininess
Definition MaterialUniform.h:21
GpuVec4 emissive
Definition MaterialUniform.h:20