Skip to content

Commit 8d4860c

Browse files
authored
Merge pull request #12 from RavEngine/baked-light
Baked light sample
2 parents 3ee2f87 + 35d14bf commit 8d4860c

File tree

10 files changed

+36
-11
lines changed

10 files changed

+36
-11
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ build/
55
deps/physx/physx/include/PxConfig.h
66
Testing/
77
.mayaSwatches
8+
*.blend1
9+
*.blend2

RavEngine

Samples/Flags/shaders/flag.fsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ layout(push_constant) uniform UniformBufferObject{
88
float time;
99
} ubo;
1010

11-
LitOutput frag()
11+
LitOutput frag(EnvironmentData envData)
1212
{
1313
LitOutput fs_out;
1414

Samples/Flags/shaders/flag_special.fsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ vec3 calcAlt_v2(vec2 uv){
102102
return resCol;
103103
}
104104

105-
LitOutput frag()
105+
LitOutput frag(EnvironmentData envData)
106106
{
107107
LitOutput fs_out;
108108

Samples/Flags/shaders/grass.fsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ layout(push_constant) uniform UniformBufferObject{
55
float time;
66
} ubo;
77

8-
LitOutput frag()
8+
LitOutput frag(EnvironmentData envData)
99
{
1010
LitOutput fs_out;
1111

Samples/Perf_Draw/shaders/instance_colored.fsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ layout(push_constant) uniform UniformBufferObject{
55
float time;
66
} ubo;
77

8-
LitOutput frag()
8+
LitOutput frag(EnvironmentData envData)
99
{
1010
LitOutput fs_out;
1111
fs_out.color = vec4(v_position / 200,1);

Samples/Rendering/main.cpp

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,21 @@ struct GlassMatInstance : public MaterialInstance {
102102
GlassMatInstance(Ref<GlassMat> m) : MaterialInstance(m, priority) {}
103103
};
104104

105+
struct BakedMat : public LitMaterial {
106+
BakedMat() : LitMaterial("bakedlight", PipelineOptions{}, { .requiredAttributes = {
107+
.position = true,
108+
.normal = true,
109+
.tangent = true,
110+
.bitangent = true,
111+
.uv0 = true,
112+
.lightmapUV = true
113+
} }) {}
114+
};
115+
116+
struct BakedMatInstance : public MaterialInstance {
117+
BakedMatInstance(Ref<BakedMat> m) : MaterialInstance(m) {}
118+
};
119+
105120
struct Level : public RavEngine::World {
106121

107122
GameObject camRoot, camHeadUD;
@@ -225,22 +240,27 @@ struct Level : public RavEngine::World {
225240
}
226241

227242
// baked lighting demo
243+
constexpr static renderlayer_t bakedLayer = 0b01;
228244
{
229-
auto bakedMat = RavEngine::New<PBRMaterialInstance>(Material::Manager::Get<PBRMaterial>());
245+
auto bakedMat = RavEngine::New<PBRMaterialBakedInstance>(Material::Manager::Get<PBRMaterialBaked>());
246+
auto lightmapDirTex = Texture::Manager::Get("Lightmap-0_comp_dir.png");
230247
auto lightmapTex = Texture::Manager::Get("Lightmap-0_comp_light.exr");
248+
bakedMat->SetBakedEmissivityTexture(lightmapTex);
249+
bakedMat->SetBakedDirectionTexture(lightmapDirTex);
231250

232-
bakedMat->SetAlbedoColor({1,0,0,1});
233251
auto bakedCubeObj = Instantiate<GameObject>();
234252
bakedCubeObj.EmplaceComponent<StaticMesh>(MeshCollectionStaticManager::Get("bakedcube"), bakedMat);
235253
auto& cubeTransform = bakedCubeObj.GetTransform();
236254
cubeTransform.SetLocalScale({ 0.01 });
237255
cubeTransform.SetLocalPosition({-20,1,0});
238-
256+
bakedCubeObj.SetEntityRenderlayer(bakedLayer); // doesn't exist on any layer the lights illuminate
257+
#if 0
239258
auto bakedPlaneObj = Instantiate<GameObject>();
240259
bakedPlaneObj.EmplaceComponent<StaticMesh>(MeshCollectionStaticManager::Get("bakedplane"), bakedMat);
241260
auto& planeTransform = bakedPlaneObj.GetTransform();
242261
planeTransform.SetLocalScale({ 0.01 });
243262
planeTransform.SetLocalPosition({ -20,1,0 });
263+
#endif
244264
}
245265

246266
// wine glasses
@@ -285,7 +305,10 @@ struct Level : public RavEngine::World {
285305
auto& light = lightsEntity.EmplaceComponent<DirectionalLight>();
286306
light.SetIntensity(4);
287307
light.SetCastsShadows(true);
288-
lightsEntity.EmplaceComponent<AmbientLight>().SetIntensity(0.2);
308+
light.SetIlluminationLayers(~bakedLayer);
309+
auto& ambientLight = lightsEntity.EmplaceComponent<AmbientLight>();
310+
ambientLight.SetIntensity(0.2);
311+
ambientLight.SetIlluminationLayers(~bakedLayer);
289312

290313

291314
lightsEntity.GetTransform().LocalRotateDelta(vector3{ deg_to_rad(45), deg_to_rad(45),0 });

Samples/Rendering/shaders/AsteroidRender.fsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ vec3 rockTexture(in vec2 uv) {
119119
}
120120

121121

122-
LitOutput frag()
122+
LitOutput frag(EnvironmentData envData)
123123
{
124124
LitOutput mat_out;
125125

Samples/Rendering/shaders/wineglass.fsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ vec3 colors[] = {
77
vec3(0,0,0.3)
88
};
99

10-
LitOutput frag()
10+
LitOutput frag(EnvironmentData envData)
1111
{
1212
LitOutput mat_out;
1313

assets/SimpleBakeTest.blend

1.07 MB
Binary file not shown.

0 commit comments

Comments
 (0)