panda3d-simplepbr

A straight-forward, easy-to-use, drop-in, PBR replacement for Panda3D's builtin auto shader

BSD-3-CLAUSE License

Downloads
140.1K
Stars
56
Committers
8
panda3d-simplepbr - v0.12.0 Latest Release

Published by Moguri 7 months ago

  • Use a constant shadow bias and switch shadows to using front faces
  • Add support for calculating the blue/Z channel of a normal map in the shader
  • Fix IBL reflection vector (was using view-space vector instead of world-space)
  • Fix 330 shaders being used when not requested
  • Some fixes for WebGL (GLSL ES)
  • Fix duplicate definition in tonemap.frag that could cause compile errors
  • Fix potential compile issue with non-330 shaders when calculating shadow contributions
  • Explicitly disable sRGB for HDR framebuffer
  • Fix IBL lagging behind by a frame
panda3d-simplepbr - v0.11.2

Published by Moguri 11 months ago

  • Fix use_330 defaulting to True instead of None
panda3d-simplepbr - v0.11.0

Published by Moguri 11 months ago

  • Add support for post-tonemap, SDR, color LUT transform
  • Add support for using HDR cubemaps for IBL diffuse and specular
  • Add simplepbr DirectNotify category to provide better control over logging
  • Add type annotations and mark package as being typed
  • Add simplepbr.utils.make_sky_box() to create a skybox NodePath from a cubemap texture
  • Add support for setting initial Pipeline parameters from PRC config variables
  • Default enable_shadows to True
  • Fix using texture2D/3D() instead of texture() when using GLSL 330 shaders
  • Fix error when a DisplayRegion is missing a camera
  • Fix shadows being delayed by a frame
  • Fix TextNode.set_text_color() not working
  • Fix possible divide-by-zero in Smith GGX visibility function (fixes some visual artifacts)
  • Fix metallics not responding to ambient lighting
  • Fix possible shader compile error for duplicate defines
  • Fix objects rendering black if they do not have a material (there is now a default material)
  • Fix ShowBase.set_background_color() not working after simplepbr.init()
panda3d-simplepbr - v0.10

Published by Moguri over 2 years ago

  • Fix normals when using hardware skinning
  • Fix hardware skinning when using GLSL 120 shaders
  • Stop enabling the auto shader on TextNodes
  • Improve performance of get_all_casters()
  • Fix gl_FragColor warnings for shadow and tonemap shaders
  • Bundle shaders into a shader.py module when building wheels
panda3d-simplepbr - v0.9

Published by Moguri about 3 years ago

  • Fix finding shaders on macOS
  • Fix warnings and errors when using GLSL 330 shaders
  • Use semantic texture slots (texture stages) instead of texture indices
panda3d-simplepbr - v0.8

Published by Moguri over 3 years ago

  • Add light attenuation
  • Allow updating render_node, window, and camera_node properties after setup
  • Add use_330 option to control using GLSL 330 shaders instead of GLSL 120
  • Support texture transforms
  • Add hardware skinning
    • Enabled by default on OpenGL 3.2+ capable hardware
    • Can be controlled with use_hardware_skinning option

Note: Panda3D 1.10.8+ is now required

panda3d-simplepbr - v0.7

Published by Moguri about 4 years ago

  • Fixes for shader/rendering artifacts
    • Clamp NdotL and NdotV to 0.0
    • Fix GGX/Trowbridge-Reitz equation for normal distribution function
    • Fix normalization of normal vector in the fragment shader
  • Optimizations
    • Use a dedicated shadow shader to avoid expensive PBR functions (mostly helps Intel)
    • Remove Fresnel term from diffuse (i.e., use simple Lambertian)
    • Use Spherical Gaussian approximation in the Fresnel equation
  • Automatically enable auto shader on TextNodes found in the scene graph (fixes TextNode rendering)
panda3d-simplepbr - v0.6

Published by Moguri over 4 years ago

  • Ensure AntialiasAttrib is set on the render NodePath (ensures MSAA works if enabled)
  • Support occlusion maps in the red channel of an occlusion-metal-roughness (ORM) map
  • Fix ambient lights
  • Support emission maps
  • Shaders moved to their own directory
panda3d-simplepbr - v0.5

Published by Moguri over 4 years ago

  • Name structs to improve compatibility with Intel drivers
  • Support p3d_ColorScale (modifies the base color)
  • Allow users to set an exposure value
  • Allow changing max_lights, use_normal_maps, msaa_samples, and exposure at runtime
  • Add basic shadow map support for DirectionalLight and Spotlight (NOTE: This breaks if a PointLight is present, and must be explicitly enabled)
  • Add exponential fog (must be explicitly enabled since fog density does not default to 0)
panda3d-simplepbr - v0.4

Published by Moguri over 4 years ago

  • Add support for vertex colors (from @rdb)
panda3d-simplepbr -

Published by Moguri over 4 years ago

  • Optimize lighting calculations for slight performance improvements
  • Stop calculating lighting for unused lights (can be a huge savings if using few lights)
  • Add support for ambient lights
    • NOTE: These are not physically accurate, but can still be useful
  • Add initial support for normal maps
    • Disabled by defaults since it requires models with properly defined tangents
  • Various fixes related to material roughness from @el-dee
  • Fix transparency (the alpha channel from the base color texture is now being used)
panda3d-simplepbr - v0.2.3

Published by Moguri about 5 years ago

  • Another Windows path fix
panda3d-simplepbr - v0.2.2

Published by Moguri about 5 years ago

  • Remove debug print that dumped out the PBR fragment shader
panda3d-simplepbr - v0.2.1

Published by Moguri about 5 years ago

  • Fix paths to shaders on Windows
panda3d-simplepbr - v0.2

Published by Moguri about 5 years ago

  • Improve support for drivers/GPUs that only support EXT_framebuffer_object and not ARB_framebuffer_object
  • Allow specifying the maximum number of lights to support via new max_lights kwarg (defaults to 8)
  • Add support for MSAA that can be controlled via a new msaa_samples kwarg (defaults to 4)
panda3d-simplepbr - v0.1

Published by Moguri about 5 years ago

Initial release