f32 in renderer
This commit is contained in:
parent
6807773b38
commit
30c4bf5c3a
|
@ -6,6 +6,11 @@ use nalgebra::Vector4;
|
||||||
use math::vector::{Vector2, Vector3};
|
use math::vector::{Vector2, Vector3};
|
||||||
use math::frustum::Frustum;
|
use math::frustum::Frustum;
|
||||||
|
|
||||||
|
/// Converts a Matrix4<f64> into a Matrix4<f32>
|
||||||
|
pub fn mat_to_f32(mat: Matrix4<f64>) -> Matrix4<f32> {
|
||||||
|
mat.map(|x| x as f32)
|
||||||
|
}
|
||||||
|
|
||||||
/// The trait that a render camera should implement.
|
/// The trait that a render camera should implement.
|
||||||
///
|
///
|
||||||
/// It allows the renderer to use it.
|
/// It allows the renderer to use it.
|
||||||
|
|
|
@ -16,7 +16,7 @@ use glium::index::{NoIndices, PrimitiveType};
|
||||||
use glium::glutin::GlWindow;
|
use glium::glutin::GlWindow;
|
||||||
|
|
||||||
use scene::Scene;
|
use scene::Scene;
|
||||||
use camera::RenderCamera;
|
use camera::{RenderCamera, mat_to_f32};
|
||||||
|
|
||||||
use model::{Vertex, Part, Model};
|
use model::{Vertex, Part, Model};
|
||||||
use math::vector::Vector3;
|
use math::vector::Vector3;
|
||||||
|
@ -124,8 +124,8 @@ impl Renderer {
|
||||||
let mut target = self.draw();
|
let mut target = self.draw();
|
||||||
target.clear_color_srgb_and_depth(self.clear_color, 1.0);
|
target.clear_color_srgb_and_depth(self.clear_color, 1.0);
|
||||||
|
|
||||||
let perspective = camera.perspective();
|
let perspective = mat_to_f32(camera.perspective());
|
||||||
let view = camera.view();
|
let view = mat_to_f32(camera.view());
|
||||||
|
|
||||||
let params = DrawParameters {
|
let params = DrawParameters {
|
||||||
depth: Depth {
|
depth: Depth {
|
||||||
|
@ -144,7 +144,8 @@ impl Renderer {
|
||||||
if let &Some(ref buffer) = part.vertex_buffer() {
|
if let &Some(ref buffer) = part.vertex_buffer() {
|
||||||
|
|
||||||
let diffuse = if let Some(ref name) = part.material_name {
|
let diffuse = if let Some(ref name) = part.material_name {
|
||||||
model.materials.get(name).unwrap().diffuse
|
let t = model.materials.get(name).unwrap().diffuse;
|
||||||
|
Vector3::new(t[0] as f32, t[1] as f32, t[2] as f32)
|
||||||
} else {
|
} else {
|
||||||
Vector3::new(1.0, 1.0, 1.0)
|
Vector3::new(1.0, 1.0, 1.0)
|
||||||
};
|
};
|
||||||
|
@ -152,7 +153,7 @@ impl Renderer {
|
||||||
let texture = self.get_texture_of_part(&model, part);
|
let texture = self.get_texture_of_part(&model, part);
|
||||||
|
|
||||||
let (texture, size) = if let Some((texture, size)) = texture {
|
let (texture, size) = if let Some((texture, size)) = texture {
|
||||||
(texture, size)
|
(texture, Vector3::new(size[0] as f32, size[1] as f32, size[2] as f32))
|
||||||
} else {
|
} else {
|
||||||
(&self.default_texture, Vector3::new(1.0, 1.0, 1.0))
|
(&self.default_texture, Vector3::new(1.0, 1.0, 1.0))
|
||||||
};
|
};
|
||||||
|
@ -162,11 +163,11 @@ impl Renderer {
|
||||||
NoIndices(PrimitiveType::TrianglesList),
|
NoIndices(PrimitiveType::TrianglesList),
|
||||||
&self.program,
|
&self.program,
|
||||||
&uniform!(
|
&uniform!(
|
||||||
diffuse: Into::<[f64; 3]>::into(diffuse),
|
diffuse: Into::<[f32; 3]>::into(diffuse),
|
||||||
tex: texture,
|
tex: texture,
|
||||||
perspective: Into::<[[f64; 4]; 4]>::into(perspective),
|
perspective: Into::<[[f32; 4]; 4]>::into(perspective),
|
||||||
view: Into::<[[f64; 4]; 4]>::into(view),
|
view: Into::<[[f32; 4]; 4]>::into(view),
|
||||||
texture_size: Into::<[f64; 3]>::into(size),
|
texture_size: Into::<[f32; 3]>::into(size),
|
||||||
),
|
),
|
||||||
¶ms,
|
¶ms,
|
||||||
).unwrap();
|
).unwrap();
|
||||||
|
|
Loading…
Reference in New Issue