You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This project aims for compatibility with Cycles material/texture nodes, light settings, camera settings and so on. The Cycles scene reader is not a single class or function, but rather a project to fuse every part of BlendLuxCore closer with Cycles/Eevee by sharing properties where it makes sense and is possible.
Material Nodes
Support packed images
Support nested node groups
Support for more nodes (see the list of compatible/incompatible nodes below)
figure out how to make it possible to add shader nodes (diffuse BSDF etc.) while LuxCore engine is selected (currently they get hidden, apparently they have some check for the current engine in their poll() methods)
Improve the report about incompatible nodes. Maybe mark them in red in the node editor (with reset button)? Show the percentage of successfully converted nodes and maybe a statement like "The materials in this scene are too complicated for our node reader" when percentage is lower than x.
Handle malformed node setups the same way as Cycles. For example, if a shader is plugged into a color socket, Cycles seems to simply ignore it and use the default_value of the socket, while our converter currently produces an incorrect SDL output that will throw errors on render startup.
List of nodes
Nodes with strikethrough are unlikely to ever get supported or don't make sense in our shading system (e.g. a sky texture on a material).
Nodes with a checkmark are at least partially supported. Note that the support can be an approximation or unfinished.
Normal inputs of material nodes (for bump/normalmapping) are not supported yet.
Input
Ambient Occlusion
Attribute
Bevel
Camera Data
Fresnel
Geometry
Position
Normal
Tangent
True Normal
Incoming
Parametric
Backfacing
Pointiness
Random Per Island
Hair Info
Layer Weight
Light Path
Object Info
Location
Color
Object Index
Material Index
Random (only works if the object ID is -1 (random))
Translucent BSDF (TODO just an approximation right now)
Transparent BSDF
Velvet BSDF
Volume Absorption
Volume Scatter
Texture
Brick Texture
Checker Texture (only "Object" texture coordinates are supported. Textured scale is not supported)
Environment Texture (supported in world node trees)
Gradient Texture
IES Texture
Image Texture (Lots of stuff to do, only the basics work)
Magic Texture
Musgrave Texture
Noise Texture
Point Density
Sky Texture (supported in world node trees)
Voronoi Texture
Wave Texture
Color
Bright Contrast
Gamma
Hue/Saturation
Invert
Light Falloff
MixRGB (only the following modes are supported: Mix, Multiply, Add, Subtract, Divide)
RGB Curves
Vector
Bump
Displacement
Mapping
Normal
Normal Map
Vector Curves
Vector Displacement
Vector Transform
Converter
Blackbody (only non-textured temperature supported)
ColorRamp (only Linear and Constant interpolation modes are supported, the rest is exported as cubic interpolation. Only RGB is supported as color mode)
Combine HSV
Combine RGB
Combine XYZ
Map Range
Math (only the following modes are supported: Add, Subtract, Multiply, Divide, Greater Than, Less Than, Power, Absolute, Round, Modulo)
RGB to BW
Separate HSV
Separate RGB
Separate XYZ
Vector Math
Wavelength
Script
Script
Group
Supported.
Layout
Frame
Reroute
Object Settings
Use the camera ray visibility property of Cycles
Use the shadow ray visibility property of Cycles (export with shadow color (1, 1, 1) if shadow ray vis is disabled)
Use the motion blur properties of Cycles
Light/World Settings
Try to share as many properties with Cycles (or Eevee?) as possible. It should be relatively seamless to switch back and forth between Cycles, LuxCore and Eevee - if you change a light's brightness in one engine, the others should also reflect this change
World:
Without node tree
Background node (aka flat color)
Environment node (aka HDRI)
Sky texture node
Lights:
Eevee settings (used when use_nodes is disabled)
(Simple) node setups
Fix area light brightness difference caused by the fact that Cycles and Lux handle changes in surface area differently
Implement Cycles spot light soft blending in Lux (currently they are slightly different)
Camera Settings
Default tonemapper should be linear, auto disabled, gain = 1
Enable clipping by default
Use Cycles DOF settings (f-stop etc.) and hide unsupported settings (e.g. blades)
Use "transparent film" property of Cycles
Support Cycles film exposure value (maybe add as an extra tonemapper entry, where the UI shows the Cycles property and uses a linear tonemapper behind the scenes)
Render Layer Settings
Sync AOV/pass settings when the "Use Cycles Settings" button is used
This project aims for compatibility with Cycles material/texture nodes, light settings, camera settings and so on. The Cycles scene reader is not a single class or function, but rather a project to fuse every part of BlendLuxCore closer with Cycles/Eevee by sharing properties where it makes sense and is possible.
Material Nodes
default_valueof the socket, while our converter currently produces an incorrect SDL output that will throw errors on render startup.List of nodes
Nodes with
strikethroughare unlikely to ever get supported or don't make sense in our shading system (e.g. a sky texture on a material).Nodes with a checkmark are at least partially supported. Note that the support can be an approximation or unfinished.
Normal inputs of material nodes (for bump/normalmapping) are not supported yet.
Input
Shader
Add ShaderTexture
Environment Texture(supported in world node trees)Sky Texture(supported in world node trees)Color
Light FalloffVector
Converter
Script
ScriptGroup
Supported.
Layout
Object Settings
Light/World Settings
Try to share as many properties with Cycles (or Eevee?) as possible. It should be relatively seamless to switch back and forth between Cycles, LuxCore and Eevee - if you change a light's brightness in one engine, the others should also reflect this change
use_nodesis disabled)Camera Settings
Render Layer Settings
Related: #80
There is a $80 open bounty on this issue. Add to the bounty at Bountysource.