partial fix
parent
c6b65951b7
commit
a375f4289b
|
@ -34,7 +34,8 @@ class frustum {
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] inline float distance(const blt::vec3& point) const {
|
[[nodiscard]] inline float distance(const blt::vec3& point) const {
|
||||||
return m_A * point.x() + m_B * point.y() + m_C * point.z() + m_D;
|
auto dist = m_A * point.x() + m_B * point.y() + m_C * point.z() + m_D;
|
||||||
|
return dist;
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] inline float A() const { return m_A; }
|
[[nodiscard]] inline float A() const { return m_A; }
|
||||||
|
@ -111,8 +112,9 @@ class frustum {
|
||||||
// std::all_of ??
|
// std::all_of ??
|
||||||
for (auto plane : planes){
|
for (auto plane : planes){
|
||||||
// point is outside plane
|
// point is outside plane
|
||||||
if (plane.distance(point) < 0)
|
if (plane.distance(point) < 0) {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,15 +62,15 @@ namespace fp::_static {
|
||||||
}
|
}
|
||||||
|
|
||||||
const blt::mat4x4& fp::getViewMatrix() {
|
const blt::mat4x4& fp::getViewMatrix() {
|
||||||
return _static::projectionMatrix;
|
return _static::viewMatrix;
|
||||||
}
|
}
|
||||||
|
|
||||||
const blt::mat4x4& fp::getProjectionMatrix() {
|
const blt::mat4x4& fp::getProjectionMatrix() {
|
||||||
return _static::orthographicMatrix;
|
return _static::projectionMatrix;
|
||||||
}
|
}
|
||||||
|
|
||||||
const blt::mat4x4& fp::getOrthographicMatrix() {
|
const blt::mat4x4& fp::getOrthographicMatrix() {
|
||||||
return _static::viewMatrix;
|
return _static::orthographicMatrix;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace fp {
|
namespace fp {
|
||||||
|
|
|
@ -174,12 +174,16 @@ void fp::world::render(fp::shader& shader) {
|
||||||
}
|
}
|
||||||
|
|
||||||
auto cp = blt::vec3{(float)adjusted_chunk_pos.x, (float)adjusted_chunk_pos.y, (float)adjusted_chunk_pos.z};
|
auto cp = blt::vec3{(float)adjusted_chunk_pos.x, (float)adjusted_chunk_pos.y, (float)adjusted_chunk_pos.z};
|
||||||
auto cp2 = cp + blt::vec3{CHUNK_SIZE, CHUNK_SIZE, CHUNK_SIZE};
|
auto cp2 = cp + blt::vec3{CHUNK_SIZE, 0, 0};
|
||||||
if (view_frustum.cubeInside(cp, cp2))
|
auto cp3 = cp + blt::vec3{0, CHUNK_SIZE, 0};
|
||||||
|
auto cp4 = cp + blt::vec3{0, 0, CHUNK_SIZE};
|
||||||
|
auto cp5 = cp + blt::vec3{CHUNK_SIZE, CHUNK_SIZE, CHUNK_SIZE};
|
||||||
|
if (view_frustum.pointInside(cp) || view_frustum.pointInside(cp2) || view_frustum.pointInside(cp3) || view_frustum.pointInside(cp4) || view_frustum.pointInside(cp5))
|
||||||
chunk->render(shader);
|
chunk->render(shader);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//std::cout << "0,0,0 in frustum? " << view_frustum.pointInside(blt::vec3{0,0,0}) << "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
fp::chunk* fp::world::generateChunk(const fp::chunk_pos& pos) {
|
fp::chunk* fp::world::generateChunk(const fp::chunk_pos& pos) {
|
||||||
|
|
Loading…
Reference in New Issue