Files
EVEngine/test/hd2d_look_contract.cpp
T
Cursor Agentand西风逍遥游 e681ebde45 feat(hd2d): add HD2DURP-style DOF look and DopFix sprite depth
Port the signature HD-2D miniature presentation from HD2DURP: Gaussian
depth-of-field on Camera3D/final HDR resolve, Hd2dLook presets, and
Sprite3D cutout depth-write controls so characters stay sharp in focus.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
2026-09-11 14:13:54 +00:00

48 lines
1.5 KiB
C++

#include "zeroerr/assert.h"
#include "zeroerr/unittest.h"
#include <string>
#include "graphics/RenderSystem3D.h"
#include "hd2d/Hd2d.h"
TEST_CASE("hd2d.look.miniatureWritesCameraDofAndBloom") {
eve::hd2d::Hd2dLook look = eve::hd2d::Hd2dLook::miniature();
CHECK(look.getMaxBlur() > 0.f);
CHECK(look.getBloomIntensity() > 0.f);
eve::graphics::Camera3D *cam = eve::graphics::Camera3D::createCamera();
REQUIRE(cam != nullptr);
look.apply(cam);
CHECK_EQ(cam->getDofFocusDistance(), look.getFocusDistance());
CHECK_EQ(cam->getDofMaxBlur(), look.getMaxBlur());
CHECK_EQ(cam->getDofFocusRange(), look.getFocusRange());
CHECK_EQ(cam->getBloomIntensity(), look.getBloomIntensity());
CHECK_EQ(cam->getBloomThreshold(), look.getBloomThreshold());
}
TEST_CASE("hd2d.look.rejectsInvalidFocusRange") {
eve::hd2d::Hd2dLook look;
bool threw = false;
try {
look.setFocusRange(0.f);
} catch (...) {
threw = true;
}
CHECK(threw);
}
TEST_CASE("hd2d.sprite.dopFixMaterialDefaults") {
eve::hd2d::Sprite3D sprite;
CHECK(sprite.getDepthWrite());
CHECK(sprite.getDoubleSided());
CHECK_EQ(sprite.getAlphaCutoff(), 0.5f);
CHECK_EQ(sprite.getBillboardMode(), std::string("screen"));
sprite.setBillboardMode("yaw");
CHECK_EQ(sprite.getBillboardMode(), std::string("yaw"));
sprite.setAlphaCutoff(0.7f);
CHECK_EQ(sprite.getAlphaCutoff(), 0.7f);
sprite.setDepthWrite(false);
CHECK(!sprite.getDepthWrite());
}