paysages3d/src/tests/Bruneton_Test.cpp

75 lines
3.6 KiB
C++
Raw Normal View History

2013-11-10 20:14:10 +00:00
#include "BaseTestCase.h"
2013-11-10 16:03:07 +00:00
2013-11-10 20:14:10 +00:00
#include "tools/color.h"
#include "CameraDefinition.h"
#include "SoftwareRenderer.h"
2013-11-15 23:27:40 +00:00
#include "AtmosphereDefinition.h"
#include "AtmosphereRenderer.h"
#include "RenderingScenery.h"
#include "System.h"
#define OUTPUT_WIDTH 400
#define OUTPUT_HEIGHT 300
2013-11-10 20:14:10 +00:00
static Color _postProcessFragment(Renderer* renderer, Vector3 location, void*)
{
return renderer->atmosphere->applyAerialPerspective(renderer, location, COLOR_BLACK).final;
}
2013-11-10 20:14:10 +00:00
TEST(Bruneton, AerialPerspective1)
{
SoftwareRenderer renderer;
renderer.render_width = 800;
renderer.render_height = 600;
renderer.render_quality = 1;
renderer.render_camera->setLocation(VECTOR_ZERO);
renderer.render_camera->setTarget(VECTOR_EAST);
renderer.render_camera->setRenderSize(renderer.render_width, renderer.render_height);
RenderParams params = {renderer.render_width, renderer.render_height, 1, 1};
renderSetParams(renderer.render_area, params);
renderSetBackgroundColor(renderer.render_area, COLOR_BLACK);
renderClear(renderer.render_area);
renderer.pushQuad(&renderer, v3(50.0, -10.0, -50.0), v3(1.0, -10.0, -50.0), v3(1.0, -10.0, 50.0), v3(50.0, -10.0, 50.0), _postProcessFragment, NULL);
renderer.pushQuad(&renderer, v3(10.0, -10.0, -10.0), v3(10.0, -10.0, -5.0), v3(10.0, 50.0, -5.0), v3(10.0, 50.0, -10.0), _postProcessFragment, NULL);
renderer.pushQuad(&renderer, v3(15.0, -10.0, -5.0), v3(15.0, -10.0, 0.0), v3(15.0, 50.0, 0.0), v3(15.0, 50.0, -5.0), _postProcessFragment, NULL);
renderer.pushQuad(&renderer, v3(20.0, -10.0, 5.0), v3(20.0, -10.0, 10.0), v3(20.0, 50.0, 10.0), v3(20.0, 50.0, 5.0), _postProcessFragment, NULL);
renderer.pushQuad(&renderer, v3(30.0, -10.0, 25.0), v3(30.0, -10.0, 30.0), v3(30.0, 50.0, 30.0), v3(30.0, 50.0, 25.0), _postProcessFragment, NULL);
renderPostProcess(renderer.render_area, System::getCoreCount());
renderSaveToFile(renderer.render_area, "./output/test_bruneton_perspective.png");
}
2013-11-10 20:14:10 +00:00
TEST(Bruneton, AerialPerspective2)
{
AtmosphereDefinition* atmo = RenderingScenery::getCurrent()->getAtmosphere();
atmo->hour = 6;
atmo->minute = 30;
2013-11-15 23:27:40 +00:00
atmo->validate();
Renderer renderer;
renderer.render_width = 800;
renderer.render_height = 600;
renderer.render_quality = 1;
renderer.render_camera->setLocation(VECTOR_ZERO);
renderer.render_camera->setTarget(VECTOR_EAST);
renderer.render_camera->setRenderSize(renderer.render_width, renderer.render_height);
RenderParams params = {renderer.render_width, renderer.render_height, 1, 1};
renderSetParams(renderer.render_area, params);
renderSetBackgroundColor(renderer.render_area, COLOR_BLACK);
renderClear(renderer.render_area);
renderer.pushQuad(&renderer, v3(50.0, -10.0, -50.0), v3(1.0, -10.0, -50.0), v3(1.0, -10.0, 50.0), v3(50.0, -10.0, 50.0), _postProcessFragment, NULL);
renderer.pushQuad(&renderer, v3(10.0, -10.0, -10.0), v3(10.0, -10.0, -5.0), v3(10.0, 50.0, -5.0), v3(10.0, 50.0, -10.0), _postProcessFragment, NULL);
renderer.pushQuad(&renderer, v3(15.0, -10.0, -5.0), v3(15.0, -10.0, 0.0), v3(15.0, 50.0, 0.0), v3(15.0, 50.0, -5.0), _postProcessFragment, NULL);
renderer.pushQuad(&renderer, v3(20.0, -10.0, 5.0), v3(20.0, -10.0, 10.0), v3(20.0, 50.0, 10.0), v3(20.0, 50.0, 5.0), _postProcessFragment, NULL);
renderer.pushQuad(&renderer, v3(30.0, -10.0, 25.0), v3(30.0, -10.0, 30.0), v3(30.0, 50.0, 30.0), v3(30.0, 50.0, 25.0), _postProcessFragment, NULL);
renderPostProcess(renderer.render_area, System::getCoreCount());
renderSaveToFile(renderer.render_area, "./output/test_bruneton_perspective1.png");
}