Custom size environment map
This commit is contained in:
parent
9c1ad95f37
commit
a2646f8f29
|
|
@ -1,4 +1,4 @@
|
|||
use std::error::Error;
|
||||
use std::{env, error::Error};
|
||||
|
||||
use glam::{mat3, vec2, vec3, Mat3, Vec3};
|
||||
use image::buffer::ConvertBuffer;
|
||||
|
|
@ -16,6 +16,8 @@ fn make_viewport(m: Mat3) -> [Vertex; 4] {
|
|||
}
|
||||
|
||||
fn main() {
|
||||
let args: Vec<_> = env::args().collect();
|
||||
let extent = args.get(1).and_then(|s| s.parse().ok()).unwrap_or(EXTENT);
|
||||
let (device, queue) = pollster::block_on(init_gpu()).unwrap();
|
||||
|
||||
let format = wgpu::TextureFormat::Rgba8UnormSrgb;
|
||||
|
|
@ -38,8 +40,8 @@ fn main() {
|
|||
let output = device.create_texture(&wgpu::TextureDescriptor {
|
||||
label: None,
|
||||
size: wgpu::Extent3d {
|
||||
width: EXTENT,
|
||||
height: EXTENT,
|
||||
width: extent,
|
||||
height: extent,
|
||||
depth_or_array_layers: 6,
|
||||
},
|
||||
mip_level_count: 1,
|
||||
|
|
@ -52,7 +54,7 @@ fn main() {
|
|||
let buffers = faces.map(|_| {
|
||||
device.create_buffer(&wgpu::BufferDescriptor {
|
||||
label: None,
|
||||
size: (4 * EXTENT * EXTENT) as u64,
|
||||
size: (4 * extent * extent) as u64,
|
||||
usage: wgpu::BufferUsages::COPY_DST | wgpu::BufferUsages::MAP_READ,
|
||||
mapped_at_creation: false,
|
||||
})
|
||||
|
|
@ -97,13 +99,13 @@ fn main() {
|
|||
buffer: &buffer,
|
||||
layout: wgpu::ImageDataLayout {
|
||||
offset: 0,
|
||||
bytes_per_row: Some(4 * EXTENT),
|
||||
rows_per_image: Some(EXTENT),
|
||||
bytes_per_row: Some(4 * extent),
|
||||
rows_per_image: Some(extent),
|
||||
},
|
||||
},
|
||||
wgpu::Extent3d {
|
||||
width: EXTENT,
|
||||
height: EXTENT,
|
||||
width: extent,
|
||||
height: extent,
|
||||
depth_or_array_layers: 1,
|
||||
},
|
||||
);
|
||||
|
|
@ -117,7 +119,7 @@ fn main() {
|
|||
for (face, buf) in buffers.iter().enumerate() {
|
||||
s.spawn(move || {
|
||||
let img =
|
||||
image::RgbaImage::from_raw(EXTENT, EXTENT, buf.slice(..).get_mapped_range().to_vec()).unwrap();
|
||||
image::RgbaImage::from_raw(extent, extent, buf.slice(..).get_mapped_range().to_vec()).unwrap();
|
||||
let img: image::RgbImage = img.convert();
|
||||
img.save(format!("textures/env{face}.jpeg")).unwrap();
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user