Teapot Loading

master
Able 2022-03-29 07:07:56 -05:00
parent f2ddde88a8
commit 418e8671be
Signed by: able
GPG Key ID: D164AF5F5700BE51
5 changed files with 2187 additions and 17 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

View File

@ -0,0 +1,9 @@
#version 140
out vec4 color;
void main() {
color = vec4(1.0, 0.0, 0.0, 1.0);
}

View File

@ -0,0 +1,10 @@
#version 140
in vec3 position;
in vec3 normal;
uniform mat4 matrix;
void main() {
gl_Position = matrix * vec4(position, 1.0);
}

View File

@ -1,6 +1,6 @@
#![feature(const_fn_trait_bound)]
use std::io::Cursor;
use std::{collections::HashMap, io::Cursor};
#[macro_use]
extern crate glium;
@ -136,27 +136,68 @@ fn main() {
let mut target = display.draw();
target.clear_color(0.0, 0.0, 1.0, 1.0);
let uniforms = uniform! {
matrix: [
[1.0, 0.0, 0.0, 0.0],
[0.0, 1.0, 0.0, 0.0],
[0.0, 0.0, 1.0, 0.0],
[ t , 0.0, 0.0, 1.0f32],
],
tex: &texture,
{
// draw the triangle
let uniforms = uniform! {
matrix: [
[1.0, 0.0, 0.0, 0.0],
[0.0, 1.0, 0.0, 0.0],
[0.0, 0.0, 1.0, 0.0],
[ t , 0.0, 0.0, 1.0f32],
],
tex: &texture,
};
target
.draw(
&vertex_buffer,
&indices,
&program,
&uniforms,
&Default::default(),
)
.unwrap();
}
{
// Teapot stage
let vertex_shader_src = include_str!("../assets/shaders/teapot/teapot.vert");
let fragment_shader_src = include_str!("../assets/shaders/teapot/teapot.frag");
};
let program =
glium::Program::from_source(&display, vertex_shader_src, fragment_shader_src, None)
.unwrap();
target
.draw(
&vertex_buffer,
&indices,
&program,
&uniforms,
&Default::default(),
let positions = glium::VertexBuffer::new(&display, &teapot::VERTICES).unwrap();
let normals = glium::VertexBuffer::new(&display, &teapot::NORMALS).unwrap();
let indices = glium::IndexBuffer::new(
&display,
glium::index::PrimitiveType::TrianglesList,
&teapot::INDICES,
)
.unwrap();
let matrix = [
[0.01, 0.0, 0.0, 0.0],
[0.0, 0.01, 0.0, 0.0],
[0.0, 0.0, 0.01, 0.0],
[0.0, 0.0, 0.0, 1.0f32],
];
target
.draw(
(&positions, &normals),
&indices,
&program,
&uniform! { matrix: matrix },
&Default::default(),
)
.unwrap();
}
target.finish().unwrap();
});
}
mod teapot;
pub type ShaderList = HashMap<String, glium::Program>;

2110
src/teapot.rs Normal file

File diff suppressed because it is too large Load Diff