summaryrefslogtreecommitdiff
path: root/client/src/render/scene/draw.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-01-24 21:18:55 +0100
committermetamuffin <metamuffin@disroot.org>2025-01-24 21:18:55 +0100
commit006ad7ce6d30d764411dcf8c2527f2c80e722491 (patch)
tree957b60eec535ddcea4f842919a99f806b6d55217 /client/src/render/scene/draw.rs
parentb4aaaae52b3b746a5e1ef8a98151c627f2787e38 (diff)
downloadweareserver-006ad7ce6d30d764411dcf8c2527f2c80e722491.tar
weareserver-006ad7ce6d30d764411dcf8c2527f2c80e722491.tar.bz2
weareserver-006ad7ce6d30d764411dcf8c2527f2c80e722491.tar.zst
minimal progress but diffuse lighting works again
Diffstat (limited to 'client/src/render/scene/draw.rs')
-rw-r--r--client/src/render/scene/draw.rs15
1 files changed, 7 insertions, 8 deletions
diff --git a/client/src/render/scene/draw.rs b/client/src/render/scene/draw.rs
index bdbcb50..9efa561 100644
--- a/client/src/render/scene/draw.rs
+++ b/client/src/render/scene/draw.rs
@@ -63,8 +63,7 @@ impl ScenePipeline {
});
for ob in scene.objects.values() {
- let prefab_modelview = view
- * Mat4::from_translation(ob.pos.into())
+ let prefab_model = Mat4::from_translation(ob.pos.into())
* Mat4::from_mat3(Mat3::from_euler(
EulerRot::YXZ,
ob.rot.x,
@@ -73,22 +72,22 @@ impl ScenePipeline {
));
if let Some(prefab) = prefabs.try_get(ob.res.clone()) {
for (affine, part) in &prefab.0 {
- let modelview = prefab_modelview
+ let model = prefab_model
* Mat4::from_translation(affine.translation.into())
* Mat4::from_mat3a(affine.matrix3);
- let modelviewp = project * modelview;
+ let modelviewp = project * view * model;
// let light = modelview * vec4(5., 5., 5., 1.);
// let light = light.to_array().map(|v| v.to_le_bytes());
- let modelview = modelview.to_cols_array().map(|v| v.to_le_bytes());
- let modelviewp = modelviewp.to_cols_array().map(|v| v.to_le_bytes());
+ let m = model.to_cols_array().map(|v| v.to_le_bytes());
+ let mvp = modelviewp.to_cols_array().map(|v| v.to_le_bytes());
rpass.set_pipeline(&part.pipeline);
rpass.set_bind_group(0, &*part.tex_albedo, &[]);
rpass.set_bind_group(1, &*part.tex_normal, &[]);
rpass.set_bind_group(2, &*part.material, &[]);
- rpass.set_push_constants(ShaderStages::VERTEX, 0, modelviewp.as_flattened());
- rpass.set_push_constants(ShaderStages::VERTEX, 64, modelview.as_flattened());
+ rpass.set_push_constants(ShaderStages::VERTEX, 0, mvp.as_flattened());
+ rpass.set_push_constants(ShaderStages::VERTEX, 64, m.as_flattened());
// rpass.set_push_constants(ShaderStages::FRAGMENT, 128, light.as_flattened());
rpass.set_index_buffer(part.index.slice(..), IndexFormat::Uint32);
rpass.set_vertex_buffer(0, part.va_position.slice(..));