v0.1.0 - First Beta Release!
Released 2021-09-11
Added
- rend3: Materials now have a
Transparency
field that supports Opaque, Cutout, and Blend transparency modes. - rend3:
AlbedoComponent::TextureVertexValue
to representtexture * vertex * constant
- rend3: Mipmaps can be generated automatically on the gpu without the user needing to upload them.
- rend3:
Renderer::add_texture_2d_from_texture
which allows you to make a new texture from a set another texture's mipmaps. - rend3 & rend3-pbr: Use
wgpu-profiler
to generate GPU timings that show up asRendererStatistics
. - rend3 & rend3-pbr: Annotate most code with
profiling
spans. - rend3 & rend3-pbr: Add a
distance
field that signifies how much space shadows should take up. - rend3-pbr: All major rendering spans are labeled and show up in renderdoc
- rend3-pbr: Multisampling support
- rend3-pbr: Support for transparency as well as stable gpu-culling to preserve transparency sort order.
Changed
- rend3: SUBTLE All handles are now refcounted.
- Handles are now
!Copy
. Functions taking handles now accept a reference to a handle. - If you want to keep something alive, you need to keep the handle to it alive.
Object
s will keepMaterial
s/Mesh
s alive.Material
s will keepTexture
s alive.- All resources are removed the
render()
after they are deleted.
- Handles are now
- rend3: Externalize all surfaces, adapters, devices, etc.
- Instead of using a
RendererBuilder
, construct an Instance/Adapter/Device withrend::create_iad
and pass that toRenderer::new
. - Surfaces are now controlled by the user. There is a convinence function
rend3::configure_surface
to make this smoother.
- Instead of using a
- rend3:
Texture::width
andTexture::height
replaced withTexture::size
- rend3:
RendererStatistics
is now an alias forVec<wgpu_profiler::GpuTimerScopeResult>
- rend3:
Texture::mip_levels
was split intomip_count
andmip_source
allowing you to easily auto-generate mipmaps. - rend3: Changed limits such that intel gets CPU mode until wgpu#1111 gets resolved.
- rend3-pbr: creation and resizing's
resolution
argument replaced with options containing resolution and sample count.
Updated
- Dependencies:
glam
0.17 -> 0.18
Fixed
- rend3-pbr: Shadow artifacting due to incorrect face culling when rendering shadow passes
- rend3-pbr: CPU mode drawing failed to account for proper vertex offsets
- rend3-pbr: Non-normalized normal maps now work correctly.
- rend3-pbr: Growing the GPU mode texture descriptor list no longer causes panic
- rend3-gltf: albedo-texture UV transform is now respected
- rend3-gltf: image loading now properly caches images
Removed
- rend3:
RendererBuilder
replaced with explicit calls toRenderer::new
. - rend3:
Renderer::delete_*
functions were removed in favor of refcounting.