我有一个在 3ds Max 中生成的地形网格,大小为 10k x 10k。我的问题是远剪裁只是关闭,我看不到我想要的。我正在尝试实现雾着色器,但我现在看到的效果不佳。
我的相机构造函数是这样的
Camera::Camera():
cameraPosition_(glm::vec3(-1.0f, 1000.0f, 20.0f)),
cameraLook_(glm::vec3(0.0f, 800.0f, 200.0f)),
lookAt_(glm::lookAt(cameraPosition_,
cameraLook_,
WORLD_YAXIS)),
near_(0.1f),
far_(10000.0f),
projection_(glm::perspective(
70.0f,
4.0f / 3.0f,
near_,
far_)),
name_("Default Camera")
{
}
最佳答案
真实的相机没有远近裁剪平面。由于数值精度问题,虚拟相机需要它们。将近平面和远平面设置为极值以模拟真实相机很诱人,但这会破坏对象。平面之间的范围越小,您得到的伪像就越少,它们应该设置为略微超出实际对象的范围。
(如果您确实需要在同一张照片中既需要天空中的飞机又需要叶子上的 bug ,请使用不同的相机设置绘制两次来伪造它)。
关于c++ - 在 Opengl 中增加相机远距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35478443/