Skip to content

v0.1.0 - First Beta Release!

Compare
Choose a tag to compare
@cwfitzgerald cwfitzgerald released this 11 Sep 17:05
· 637 commits to trunk since this release
v0.1.0
103b525

Released 2021-09-11

Added

  • rend3: Materials now have a Transparency field that supports Opaque, Cutout, and Blend transparency modes.
  • rend3: AlbedoComponent::TextureVertexValue to represent texture * 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 as RendererStatistics.
  • 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.
    • Objects will keep Materials/Meshs alive.
    • Materials will keep Textures alive.
    • All resources are removed the render() after they are deleted.
  • rend3: Externalize all surfaces, adapters, devices, etc.
    • Instead of using a RendererBuilder, construct an Instance/Adapter/Device with rend::create_iad and pass that to Renderer::new.
    • Surfaces are now controlled by the user. There is a convinence function rend3::configure_surface to make this smoother.
  • rend3: Texture::width and Texture::height replaced with Texture::size
  • rend3: RendererStatistics is now an alias for Vec<wgpu_profiler::GpuTimerScopeResult>
  • rend3: Texture::mip_levels was split into mip_count and mip_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 to Renderer::new.
  • rend3: Renderer::delete_* functions were removed in favor of refcounting.