Hi everyone!
Since the release of Knald last year the KnaldTech team has been busy working on a new application. We are proud to announce the
open beta of Lys - An ultra-fast GPU powered solution that sets the standard for generating Radiance, Irradiance and Specular textures from panoramic, Sphere or 2d cube map cross source textures for use with HDR Image Based Lighting.
What is Lys?
Lys is an ultra-fast GPU powered solution that sets the standard for generating Radiance, Irradiance and Specular textures from panoramic, Sphere or 2d cube map cross source textures for use with HDR Image Based Lighting.
With the ability to convert, manipulate and tweak your source images in real-time, generate Radiance, Irradiance and Specular textures on the fly and choose between Cosine weighted, GGX and Gaussian specular terms with fully automated BRDF convolved MIP maps with user configurable varying Specular Power or Roughness, Lys can help give you the tools and functionality that you need to ensure that your project’s HDR Image based lighting pipeline is the best that it can be.
Real-time cross conversion between panoramic, Sphere and cube maps
Converting between panoramic (longitude/latitude), sphere (image probes) and cube maps while preserving original image quality is a breeze. Simply import any of the aforementioned images and Lys will automatically convert between the source layout to the remaining layouts instantly by analytically evaluating the per pixel coverage in order to maximize the quality performance of the texture filtering process.
Due to the nature of specular convolution and the awkwardness of 3d cube maps it is extremely difficult and often impossible to accurately generate or manipulate these images within 2d image editors without introducing errors into your pipeline. With the addition of Lys it is now possible to seamlessly convert your content back and forth into an editable layout, such as a panorama (longitude/latitude), make your changes and then reimport back into Lys for processing.
Real-time axis rotation and Cube map face position debugging
Lys gives you the flexibility to rotate in the XY and Z axes independently while retaining the integrity of the conversion between all layouts.
Cosine weighted, GGX and Gaussian specular terms
Our best in class Specular convolution has full support for Cosine weighted, GGX and Gaussian specular terms so you can be sure that everything conforms to current physically based industry standards, allowing you to integrate it into your workflow seamlessly with the full confidence that you are getting the absolute best quality possible for your project’s needs.
Never before has specular convolution been so fast or easy to use!
BRDF convolved MIP maps with user configurable varying specular power/roughness
Lys has fully automated BRDF convolved MIP maps with user configurable varying Specular Power or Roughness to achieve HDR image based lighting in real-time graphics.
Upon generation of the specular texture Lys automatically calculates the correct specular/roughness level for each MIP individually, based on a choice of power drops, without any ugly seams as you go down the MIP chain.
Physically based Roughness & Specular power
Roughness and Specular Power are both fully supported and instantly cross convertible within Lys at the push of a button. Simply select your preferred standard and you are good to go!
Instant Irradiance generation with spherical harmonic coefficients export
In tandem with the ultra-fast specular convolution Lys instantly generates Irradiance for you chosen image and even supports export for spherical harmonic coefficients triplets in text based or floating point .tiff flavours.
Spherical harmonic coefficients present an extremely low cost method of generating noiseless, high quality Irradiance by effectively reducing the footprint to a single 9
Replies
Glad to see this released and look forward to future development.
It's robust, clean, quick and most importantly easy to use!
Good job Andy and co.!
Thirdeded!
Awesome stuff guys! Looking forward to messing with it some more
I wanted to pop in and say thanks for the kind words!
I'm a little swamped and short on time atm but will be sure to reply to the questions posted later.
Cheers
Thanks! The tool seems awesome.
Aside from the Sky generator, why is the main purpose of "generating Radiance, Irradiance and Specular textures from panoramic, Sphere or 2d cube map cross source textures for use with HDR Image Based Lighting"? How is this stuff applied? I haven't switched over to PBR yet, so maybe that's why I don't know what this is for.
Thanks!
@cman2k,
We don't have any concrete plans for that currently but we are considering such things for the future.
@kodde,
We plan to fully document the math for all the drops in forthcoming documentation. Hopefully that wont be too long.
@JValencia & Shadownami92,
Thanks for the kind words, guys
Also, thanks for answering those questions Per
@tadpole3159, Awesome That's super cool to hear, man!
We don't have a concrete price for Lys yet, but we will post it here when it is finalised.
Just about to attempt to get photoshop to automate combining and splitting the cubemaps but would be awesome to just have the support for it in this software.
https://www.assetstore.unity3d.com/en/#!/content/13616
I tested it and it works like a charm!
However we've noticed some issues when exporting preconvolved specular maps which prevents us from using the tool in production. It seems that only when exporting cube maps as .dds with a specific encoding the tool writes out the different mipmaps.
If you export as panoramic image or choose another format (.exr, .tiff) it doesn't export the different convolutions based on roughness.
In the cube map .dds case it only works when selecting either BCH6, BC7 or 8_8_8_8 encoding. We've analyzed the 32_32_32_32 and 32_32_32_32F exports and found that the image data only contained (roughly) 3 of the 6 sides of the cube maps including all the mipmaps in raw format with a .dds header that wasn't set properly but instead contained only zeros.
I think the tool could really benefit from a more general raw export for different environment map formats as not every engine, framework or graphics api supports these specific file formats (exr with mipmaps, dds, etc.) and encodings (BCH6, etc.). For that it would perfectly suffice to export each mipmap to a separate file for maximum flexibility.
Again thanks for this awesome tool.
As an added bonus we have also documented how to use our cube maps to mimic half-vector based BRDF formulations to match path tracers! The approach will work equally well for normalized Blinn-Phong and GGX.
Specular Powers of 32, 64, 128 & 256. Lys top row, Path Tracer bottom row.
Lys Power Drop Documentation
This page will change location once we get the full documentation online, but when it will be accessible via the Help> Online Documentation. I will make a post about this when it happens ofc.
Let me know if that is everything you need.
Thanks for the comments I will make the request.
Thanks for the kind words!
I'm not sure there is much we can do about exporting the pre-convolved specular maps with anything other than dds as only DDS supports custom MIPS. I would definitely recommend using cubemaps in all situations where IBL is needed as they are much more efficient on the GPU than any other format. In addition you have many more options than with any other format, not least the shear amount of compression options. However, I will ask about exporting the mips as separate files, but I can't make any promises if it will happen or not.
Which tool are you using to load the DDS files that only show 3/6 faces? We double checked them today and everything works perfectly here. We used the D3D11 loader and fx composer to double check our results.
Cheers everyone!
Yep we know but sadly in WebGL it's not that easy to do. First there is only support for DXT5 dds profile right now, which leaves you with only 8bits per channel or roll your own raw buffer for full precision. Second and probably more importantly in WebGL there is no textureCubeLod (at least not until the extension is widely supported) so you are left with textureCube with a bias. To calculate the right bias you would have to reverse the mipmap formulas that are done on the gpu which is tricky and not well documented. Especially when you are dealing with forward rendering because multiple render targets for deferred rendering are not well supported either.
But rest assured panoramic hdr raw textures with custom mipmap pyramid atlases work fine for us for ibl!
Thanks!
We opened the 32_32_32_32 dds specular textures in Photoshop with the dds plugin. It just displayed mostly black garbage data. Then we looked at the hexdump of the file and saw that there is no dds header set and that the file doesn't have the right bytesize. Today we double checked again and exported another map. Now it has the right bytesize and we can open it as .raw in Photoshop and see all 6 sides with cubemaps and also successfully opened it with FXComposer! Strange indeed. Maybe we hit a strange export size configuration.
Most of the DDS export in Lys as DX10 cubemap layout which wont open in Photoshop. 8888 is exported as the old DX9 however which would explain why it would work first time.
Glad you mamaged to get it working in the end though
New build ahoy!
Build Number: 20140929001- September 29th, 2014.
New Features, Improvements and Optimizations
Bug fixes
- Fixed export and preferences saving
- Added orientation options to the preferences menu
We updated everyone's account with the new build, which you can get via the updater when you start Lys or by going to https://www.knaldtech.com/licenses/, logging in and hitting the download button next to your current Lys beta purchase.Enjoy!
Some feedback;
Having the progress be incremental/realtime is very cool, but accidentally exporting while stuff is still processing is easy and problematic. Maybe exporting while processing should be disabled and/or have a warning?
Perhaps it would be nice to be able to load Preferences/export configs as well as save them? This way I could set up my engine's settings once and share/re-use that easily?
Why can I set 'Cube Map Specular -> Export: Face Size' on the Main Tab AND set 'Cube map -> Specular -> Per Face -> Size' on the Export Tab? Are these not the same thing?
If I explicitly set a size on the Export Tab (e.g. Cube map specular face size, specifically) - why does that get reset when I import a new Pano? Should it not be saved with my export configuration?
It might be useful to have a preference/option for forcing default texture sizes to power-of-2? (Might make me more likely to use recommended sizes if I knew they were all rounded to nearest power-of-2)
I somehow changed my 3d preview from many spheres to one...I understand this is a feature, but I have yet to be able to figure out how to go back to the multiple-sphere preview, hehe.
I think most of your suggestions make sense. I will see what we can do to add them where possible. The pow2 option should be doable for the next beta release at least I think.
The cube map specular on the main tab and export tabs are the same yes, which was done for ease of use for the user as it is the once most likely to be changed often. Duplicating it stops the need for always switching to the export tab
The export sizes get reset because the export size is calculated automatically on import of a new image. I will see if I can get that stuff to be savable.
To get back to the multi-sphere view double click your mmb on the sphere.
The zoom controls for multisphere to sphere are as follows:
Zoom in = MMB click or Alt+RMB click on the sphere of choice
Zoom out = MMB double click click or Alt+RMB double click on the sphere of choice
Hope that helps!
Export -> Export Dimensions -> Use recommended export resolution
not checked by default, options greyed out by default.
check option, options still greyed out.
uncheck option, options now available.
this seems to "reload" my image, which can reset (Main -> Cube map specular export -> Face size), erasing changes if I have set any.
this seems to put me into a bad state where my faces are not sync'd or processing correctly. Checking/Unchecking the option can then fix it.
Nice find, guys. I will make sure to get this fixed for the next beta release
Cheers!
Hey everyone,
New build ahoy!
Over the past month we have been hard at work adding a bunch of great new features and fixing bugs!
Build Number: 20141106001- November 6th, 2014.
New Features, Improvements and Optimizations
Bug fixes
We updated everyone's account with the new build, which you can get via the updater when you start Lys or by going to https://www.knaldtech.com/licenses/, logging in and hitting the download button next to your current Lys beta purchase.
If your Lys key has expired you can get a new one by logging in, going to https://www.knaldtech.com/lys-open-beta/ and clicking the the Free - Get Lys Open Beta! button and then proceeding with the cart process as you would normally.
Enjoy!
Sorry about that. Looks like there is something odd going on with the link.
Go to https://www.knaldtech.com/lys-open-beta/ and click the Free Get Lys Open Beta! button and that will take you to the correct page.
Hope that helps
Lys Fatal Error
OpenGL shader errror.
Please make sure your graphics card supports OpenGL 3.2 and GLSL 1.50 or later.
We both have 7900 series AMD cards which supports 4.2 OpenGL. I'm going to test it on 290 series on my home computer when I get home.
Hi! Thanks for the report.
Your 7900 series cards should support 4.3, as should any DX11 era card, and should be fully compatible with Lys. Could you check that you are running the latest drivers and post the specs. of your cards and OS please?
Regarding the message, Lys actually requires GLSL version 4.30/OpenGL 4.3 and not 3.2/1.50 as stated in the error. We will make sure it gets updated to show the correct information in the next build.
I'm at home now and I can unfortunately confirm that I get the same error on my 290 card.
some info about my software driver stuff
Driver Packaging Version 14.301.1013-141117a-177876E
Catalyst Version 14.11.2 Beta
Direct3D Version 9.14.10.01061
OpenGL Version 6.14.10.13092
Hardware
Graphics Chipset AMD Radeon R9 200 Series
I updated these drivers just the other day.
Thanks for the clarification. You will be happy to know that we have fixed the issue that was causing the error and you should be able to run Lys once we release the next beta build.
Cheers!
Hey everyone,
New build ahoy! Over the past couple of months we have been hard at work adding a bunch of great new features and fixing bugs!
Build Number: 20141229003 December 29th, 2014.
New Features, Improvements and Optimizations
- Totally revamped and reimplemented the way in which users save their preferences within Lys. It is now possible to save/cancel or reset individual states of all GUI elements across the 95% of Lys on an application wide, tab wide or group only basis either via the new icons that are now found at the top right hand side of the groups or via the new Edit menu.
- Users can see whether they are saving, cancelling or resetting on an application wide, tab wide or group only basis due to a new group highlighting system where the group, tab or application are highlighted with green, red or blue when hovering over the new group buttons
- Added new shortcuts for the saving functionality which are as follows
- LMB click when clicking the icons for group only
- CTRL+LMB for current tab or
- ALT+LMB for application wide
- Added new tooltips
- Miscellaneous improvements and optimizations
Bug fixesWe updated everyone's account with the new build, which you can get via the updater when you start Lys or by going to https://www.knaldtech.com/licenses/, logging in and hitting the download button next to your current Lys beta purchase.
If your Lys key has expired you can get a new one by logging in, going to https://www.knaldtech.com/lys-open-beta/ and clicking the the Free - Get Lys Open Beta! button and then proceeding with the cart process as you would normally.
Enjoy!
You can find build notes here:
https://www.knaldtech.com/lysopenbeta-update-build20141229003/
If you haven't already tried Lys, you can get the open Beta for free at https://www.knaldtech.com/lys-open-beta/
Enjoy!
Happy New Year, everyone!
We have a fresh build out of the oven for you all to enjoy
Build Number: 20150105001 – January 5th, 2015.
Bug fixes
We updated everyone's account with the new build, which you can get via the updater when you start Lys or by going to https://www.knaldtech.com/licenses/, logging in and hitting the download button next to your current Lys beta purchase.
If your Lys key has expired you can get a new one by logging in, going to https://www.knaldtech.com/lys-open-beta/ and clicking the the Free - Get Lys Open Beta! button and then proceeding with the cart process as you would normally.
Enjoy!
Works now Cheers!:)
I've got a stupid question but I've got to ask. Now that we're using mip maps for different levels of roughness how do we fix the aliasing in the reflections in game? Before we would just pop down the mip levels to get smooth reflections.
We've added an angle based fix where the reflections get blurred at grazing angles, it fixes the aliasing issues but it makes the model look rougher at grazing angles. Does anyone have any better ideas to fix this?
Awesome!
Thanks for the comment!
Having consumed the MIP maps to represent different specular powers implies achieving proper filtering is a problem. For blurry reflections aliasing tends to be less offensive. For cases where you need a very hard reflection you could use a cube map to represent a single high specular power but with conventional MIP maps to get good filtering.
Please feel free to reach out to us at support@knaldtech.com if you have further questions on the topic.
I'm using terragen3 to generate panoramic skies but some errors occurs on radiance when the size of the pano is 4096x2048 (tell me if I'm ok, is it the right size to obtain a cubemap with 1024px faces?), I attach a screenshots so you can see what I'm talking about
Tnx ^_^
Hi everyone!
After a long public beta we have finally arrived and the wait is over! Lys 1.0 has been released!
We would like to truly thank everyone for all their hard work & dedication in helping us make Lys the best that it can be.
Going forward our journey will continue to update and improve Lys, so please feel free to keep offering us your suggestions & giving us your valuable feedback. We couldnt have done this without you!
You can now view pricing & purchase Lys HERE
The Lys Open Beta will be deactivated on March 1st but for those who wish to continue evaluation, we also have a demo version that is available for people to test system compatibility and other such workflow considerations.
Thanks again for all the support everyone!
Enjoy!
Kind regards,
The KnaldTech team.
Build Number: 20150216001 February 16th, 2015.
Bug fixes
Feedback and Support
We strive to make Lys the best that it can be, so please feel free to keep offering us your suggestions & giving us your valuable feedback on things such as bug reports and anything else that you feel could be improved within Lys.
You can also email us at support@knaldtech.com with any questions that you may have.
Artwork
We love seeing art that has Lys has helped create so please feel free to post your work in this thread so we can view it in all of its glory.
Social Media
Knald Technologies is now on Facebook, Twitter & Google+! Like us on Facebook Here, add us on Twitter Here & +1 us on Google+ Here.
Thanks!