update ModelBatch.box semantics
This commit is contained in:
parent
a53dc7e0df
commit
916d1c1408
@ -48,25 +48,6 @@ ModelBatch::~ModelBatch() {
|
||||
}
|
||||
|
||||
void ModelBatch::test(glm::vec3 pos, glm::vec3 size) {
|
||||
float time = static_cast<float>(Window::time());
|
||||
pushMatrix(glm::translate(glm::mat4(1.0f), pos));
|
||||
pushMatrix(glm::rotate(glm::mat4(1.0f), glm::sin(time*7*0.1f), glm::vec3(0,1,0)));
|
||||
pushMatrix(glm::rotate(glm::mat4(1.0f), glm::sin(time*11*0.1f), glm::vec3(1,0,0)));
|
||||
pushMatrix(glm::rotate(glm::mat4(1.0f), glm::sin(time*17*0.1f), glm::vec3(0,0,1)));
|
||||
pushMatrix(glm::translate(glm::mat4(1.0f), glm::vec3(0, glm::sin(time*2), 0)));
|
||||
box({}, size);
|
||||
box({1.5f,0,0}, size*0.5f);
|
||||
popMatrix();
|
||||
popMatrix();
|
||||
popMatrix();
|
||||
popMatrix();
|
||||
popMatrix();
|
||||
}
|
||||
|
||||
void ModelBatch::box(glm::vec3 pos, glm::vec3 size) {
|
||||
if (index + 36 < capacity*VERTEX_SIZE) {
|
||||
flush();
|
||||
}
|
||||
glm::vec3 gpos = combined * glm::vec4(pos, 1.0f);
|
||||
light_t light = chunks->getLight(gpos.x, gpos.y, gpos.z);
|
||||
glm::vec4 lights (
|
||||
@ -76,6 +57,25 @@ void ModelBatch::box(glm::vec3 pos, glm::vec3 size) {
|
||||
Lightmap::extract(light, 3) / 15.0f
|
||||
);
|
||||
|
||||
float time = static_cast<float>(Window::time());
|
||||
pushMatrix(glm::translate(glm::mat4(1.0f), pos));
|
||||
pushMatrix(glm::rotate(glm::mat4(1.0f), glm::sin(time*7*0.1f), glm::vec3(0,1,0)));
|
||||
pushMatrix(glm::rotate(glm::mat4(1.0f), glm::sin(time*11*0.1f), glm::vec3(1,0,0)));
|
||||
pushMatrix(glm::rotate(glm::mat4(1.0f), glm::sin(time*17*0.1f), glm::vec3(0,0,1)));
|
||||
pushMatrix(glm::translate(glm::mat4(1.0f), glm::vec3(0, glm::sin(time*2), 0)));
|
||||
box({}, size, lights);
|
||||
box({1.5f,0,0}, size*0.5f, lights);
|
||||
popMatrix();
|
||||
popMatrix();
|
||||
popMatrix();
|
||||
popMatrix();
|
||||
popMatrix();
|
||||
}
|
||||
|
||||
void ModelBatch::box(glm::vec3 pos, glm::vec3 size, glm::vec4 lights) {
|
||||
if (index + 36 < capacity*VERTEX_SIZE) {
|
||||
flush();
|
||||
}
|
||||
plane(pos+Z*size, X*size, Y*size, Z, lights);
|
||||
plane(pos-Z*size, -X*size, Y*size, -Z, lights);
|
||||
|
||||
|
||||
@ -41,7 +41,7 @@ class ModelBatch {
|
||||
uint32_t integer;
|
||||
} compressed;
|
||||
|
||||
compressed.integer = (static_cast<uint32_t>(light.r * 255) & 0xff) << 24;
|
||||
compressed.integer = (static_cast<uint32_t>(light.r * 255) & 0xff) << 24;
|
||||
compressed.integer |= (static_cast<uint32_t>(light.g * 255) & 0xff) << 16;
|
||||
compressed.integer |= (static_cast<uint32_t>(light.b * 255) & 0xff) << 8;
|
||||
compressed.integer |= (static_cast<uint32_t>(light.a * 255) & 0xff);
|
||||
@ -49,12 +49,12 @@ class ModelBatch {
|
||||
buffer[index++] = compressed.floating;
|
||||
}
|
||||
|
||||
inline void plane(glm::vec3 pos, glm::vec3 right, glm::vec3 up, glm::vec3 norm, glm::vec4 light) {
|
||||
inline void plane(glm::vec3 pos, glm::vec3 right, glm::vec3 up, glm::vec3 norm, glm::vec4 lights) {
|
||||
norm = rotation * norm;
|
||||
float d = glm::dot(norm, SUN_VECTOR);
|
||||
d = 0.8f + d * 0.2f;
|
||||
|
||||
auto color = light * d;
|
||||
auto color = lights * d;
|
||||
|
||||
vertex(pos-right-up, {0,0}, color);
|
||||
vertex(pos+right-up, {1,0}, color);
|
||||
@ -71,7 +71,7 @@ public:
|
||||
void pushMatrix(glm::mat4 matrix);
|
||||
void popMatrix();
|
||||
|
||||
void box(glm::vec3 pos, glm::vec3 size);
|
||||
void box(glm::vec3 pos, glm::vec3 size, glm::vec4 lights);
|
||||
|
||||
void test(glm::vec3 pos, glm::vec3 size);
|
||||
void flush();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user