summaryrefslogtreecommitdiff
path: root/test/test-render.cpp
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2023-12-03 17:22:18 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2023-12-03 17:22:18 +0000
commit0b3460d0ad0ea9976f3919a2f2befe16f8f35f19 (patch)
tree2dcd742458477bbc1e04446441d390ae9776442f /test/test-render.cpp
parentSet the viewPoint uniform in shadow shaders (diff)
downloadilt-0b3460d0ad0ea9976f3919a2f2befe16f8f35f19.tar.bz2
ilt-0b3460d0ad0ea9976f3919a2f2befe16f8f35f19.tar.xz
ilt-0b3460d0ad0ea9976f3919a2f2befe16f8f35f19.zip
Render test using loaded terrain
Diffstat (limited to 'test/test-render.cpp')
-rw-r--r--test/test-render.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/test/test-render.cpp b/test/test-render.cpp
index f15e51e..cb6b1b4 100644
--- a/test/test-render.cpp
+++ b/test/test-render.cpp
@@ -93,6 +93,43 @@ BOOST_AUTO_TEST_CASE(basic)
Texture::save(outImage, "/tmp/basic.tga");
}
+BOOST_AUTO_TEST_CASE(terrain)
+{
+ SceneRenderer ss {size, output};
+ ss.camera.setView({310000000, 490000000, 600000}, glm::normalize(glm::vec3 {1, 1, -0.5F}));
+
+ class TestTerrain : public SceneProvider {
+ Terrain terrain {std::make_shared<GeoData>(GeoData::loadFromAsciiGrid(FIXTURESDIR "height/SD19.asc"))};
+
+ void
+ content(const SceneShader & shader) const override
+ {
+ terrain.render(shader);
+ }
+
+ void
+ environment(const SceneShader &, const SceneRenderer & sr) const override
+ {
+ sr.setAmbientLight({0.1, 0.1, 0.1});
+ sr.setDirectionalLight({1, 1, 1}, south + down, *this);
+ }
+
+ void
+ lights(const SceneShader &) const override
+ {
+ }
+
+ void
+ shadows(const ShadowMapper & shadowMapper) const override
+ {
+ terrain.shadows(shadowMapper);
+ }
+ };
+
+ ss.render(TestTerrain {});
+ Texture::save(outImage, "/tmp/terrain.tga");
+}
+
BOOST_AUTO_TEST_CASE(pointlight)
{
SceneRenderer ss {size, output};