Knald 1.2.0 Released!
Build Number: 20161113001 – November 16th, 2016.
New build ahoy! After six months of working behind the scenes we are happy to release Knald 1.2!
This release is huge with massive upgrades to the mesh loading system (read below for details), including support for baking Bent Normals, support for the Stanford .PLY file format, additional options for occluder weighting for Ambient Occlusion, support for unnormalized height maps in the Baker, a new light theme and more!
Mesh Loading Improvements:
Due to popular demand, and part of a forthcoming series of upgrades in this area over the coming months, we have increased the amount of triangles that Knald can handle up to a limit of 350m triangles (both in the baker and in the viewport) and have hugely optimised the speed in which Knald can load meshes; with the speed up being between 100-550% faster. :)
We have also added a novel way for the user to tailor mesh loading and bake times to better suit their own personal workflows and specific mesh densities. We call this Bake Balancing.
Bake Balancing:
Balances execution time between High Poly processing (import) and baking time.
This enables the user to choose faster High Poly mesh loading at the expense of extended baking time, reduced baking time at the expense of extended High Poly mesh loading speed or strike a balance between the two extremes in various increments.
- -3: Knald prioritizes an increased High Poly initialization speed over baking time.
- 0: Knald will try to strike a balance between High Poly initialization speed and baking time.
- +3: Knald prioritizes a reduced baking time over High Poly initialization speed.
Note: High Poly import happens once only, even if subsequent bakes are performed using the same High Poly data. Knald will only reprocess the meshes if the source data is modified (either by loading a new high poly mesh or by editing the existing meshes externally).
Bent Normals Support:
A common frustration with image based lighting in realtime graphics is the misprediction of specular peaks due to lack of self-occlusion.
During the course Advances in Real-Time Rendering in Games at Siggraph 2016 several speakers stated the importance of using bent normals combined with ambient occlusion to alleviate this problem in a practical way within the context of real-time graphics in order to achieve the next tier of realism.
Bent normal maps are able to do this because uniform AO combined with the bent normal defines a visibility cone which can be used to perform specular masking in a shader, with the bent normal itself representing the central direction of the visibility cone and the uniform AO representing the percentage of the visible (unoccluded) hemisphere
On a more artistic note bent normals can also serve as extremely useful texture masks for more stylized workflows, such as those found within the MOBA community.
Of course, bent normal generation within Knald is blazingly fast too :)
New Occluder Weighting Choices for AO
We have added two additional choices (for a total of three) that change the way in which AO is generated. These new settings provide very distinct and separate results which can be useful for photogrammetry workflows in addition to texture masks in more stylized art.
- Cosine: Each sample is weighted by it’s cosine to the normal.
- Uniform Clamped: A uniform weighting of visible directions gives the percentage of visible surface area on the hemisphere.
- Uniform Unclamped: Corresponds to projection of visibility onto the first spherical harmonic band L=0.
What’s changed since Knald 1.1.2?
New Features, Improvements and Optimizations
- Added support for Tangent & Object Space Bent Normal Maps in the Baker with various options to control occluder weighting (Cosine, Uniform Clamped & Uniform Unclamped) and how the magnitude is stored via normalization.
- Improved the mesh loader to support mesh files with a triangle count of 350 million.
- Improved mesh loading speeds by up to 550%.
- Improved the mesh loader to support user adjustable bake balancing, which balances execution time between High Poly processing (import) and baking time based upon a slider value.
- Improved the mesh loader to support mesh files over 4GB in size.
- Added support for .ply Polygon File Format/Stanford Triangle Format.
- Added support for unnormalized height maps in the Baker.
- Added support for various options to control occluder weighting for baked Ambient Occlusion (Cosine, Uniform Clamped & Uniform Unclamped).
- Added support for various options to control occluder weighting for Mesh Ambient Occlusion (Cosine, Uniform Clamped & Uniform Unclamped).
- Added support for the reporting of various statistics for Height Maps in the Baker on (Min, Mid & Max for both normalized & unnormalized).
- Add support for the display of high poly vertex & triangle counts in the status bar while the Baker is loaded.
- Updated .kpbr with new presets (Brass #2, Rhodium, Tin, Tungsten + Concrete 1+2).
- Added an the option to use a cube primitive in the 3d preview.
- Added new Light theme for Knald via a dropdown option in the Preferences Tab.
- Added support for palletized PNG files.
- Added support for collapsible groups in the 3d preview.
- Updated the Dark theme so that ghosted/disabled GUI items are lighter for better legibility.
- Miscellaneous improvements to the load/save system.
- Miscellaneous tweaks to .kpbr to improve preview material aesthetics.
- Updated tooltips.
- Miscellaneous improvements and optimizations.
Bug fixes
- Fixed an issue where .ksf files did not correctly restore bake settings when the Baker was not initialized.
- Fixed an issue where the 3d preview or main window are off
- screen after startup on some occasions.
- Fixed an issue where Knald failed to process loaded images or bake correctly on some occasions.
- Fixed an issue where the Material ID default initial value was shown as black in the color picker.
- Fixed an issue in the Baker where expected ray hits would occasionally fail along triangle edges in some situations.
- Fixed an issue where under some circumstances the Material ID color schemes were not initialized correctly resulting in a black color picker.
- Fixed an issue where Flip Green was saved in an incorrect state in some situations.
- Fixed an issue where the Image AO scale slider incorrectly forced the regeneration of Mesh AO when moved.
- Fixed an issue where OS Normals, Vertex Colors & Material ID were not checked by default in export settings even though they were baked.
- Fixed an issue where baker size ratios were not maintained correctly for non-square sizes.
- Fixed an issue where some palletized/indexed PNG files were not supported correctly.
- Fixed an issue where some PNG with an alpha channel were not supported correctly.
- Fixed an issue where greyscale PNG files of less than 8bits per pixel were not supported correctly.
- Fixed an issue where some custom suffixes were not saved correctly after restarting Knald.
- Miscellaneous bug fixes.