Malt 1.0 UX Improvements (Feedback needed) #148
Replies: 10 comments 13 replies
-
Default Material (Done)Current:The default material is an unlit yellow shader. Proposed:Use a light grey diffuse material as default. Rationale:It’s common to start modeling objects without a material applied, so having a usable default material can be handy. |
Beta Was this translation helpful? Give feedback.
-
Scene and World parameters (Done)Current:Malt pipelines declare Scene and World parameters. Proposed:Move all Scene parameters to World. Rationale:Makes it easier to share render settings across Scenes and Blend files (by appending/linking) while still being able to override them. |
Beta Was this translation helpful? Give feedback.
-
Vertex LayoutCurrent:Malt loads to OpenGL vertex positions, normals, UVs (up to 4), precomputed tangents/bitantgents (up to 4) and vertex colors (up to 4) Proposed:Load precomputed tangents/bitangents for the first UV only and compute the rest on the pixel shader. Rationale:OpenGL has a limit of 16 per-vertex attributes, and precomputed tangents are (usually) only useful for low-poly models. |
Beta Was this translation helpful? Give feedback.
-
PixelOutput shadow_color (Done)Proposed:Rename shadow_color to transparent_shadow_color Rationale:The current name is misleading, it’s only used for transparent materials. |
Beta Was this translation helpful? Give feedback.
-
Pixel UnitsCurrent:Some features (like line width) are specified in pixels. Proposed:Use a different type of unit. Options:
Rationale:Using pixels as units can heavily change the look of an artwork when rendering at different resolutions (ie. 1080 vs 4k) and by the time the user notices the problem, it may be hard to fix. |
Beta Was this translation helpful? Give feedback.
-
IDs (Done)Current:IDs are used for detecting lines at object boundaries, computing bevels, and detecting self-shadows. Proposed:Use 4 ID channels Options:
Rationale:It’s common to want different lines at different types of intersections. |
Beta Was this translation helpful? Give feedback.
-
LibrariesCurrent:Malt uses paths for selecting GLSL shaders, GLSL libraries and render pipelines. Proposed:Use global (always available) and local (selected per project) libraries. Use a pre-defined directory layout, so Malt knows where to find the relevant files, for example:
Rationale:Encourages a cleaner and easier way to handle custom user libraries and makes them easier to share. |
Beta Was this translation helpful? Give feedback.
-
More explicit Render LayerCurrent:The default Malt Pipeline is composed of several scene and screen passes. More info here: These steps are hard-coded and the user has no control over them. Render Layer nodes only allows post-processing the results of the previous steps. Proposed:Rewrite each of these steps as configurable Render Layer nodes. Rationale:Allow more customization and extensibility. For example:
|
Beta Was this translation helpful? Give feedback.
-
Simplify COMMON_PIXEL_SHADER Input/Output (Done)Current:At least 3 nodes are needed for the basic setup of a material: Proposed:Always use the default output values unless a socket has a node attached, so COMMON_PIXEL_SHADER Output is enough. Rationale:Simplify shader nodes setup. |
Beta Was this translation helpful? Give feedback.
-
Improve the shader API and add default values for node socketsNow that it's possible to set default values and optional sockets to nodes using META() macros in GLSL, it's a good moment to make a clean-up and improvement pass to the whole API. |
Beta Was this translation helpful? Give feedback.
-
As we get near the 1.0 release, it's time to re-evaluate some of the Malt design decisions.
This thread is for listing and discussing UX improvements that require breaking backward compatibility.
Feel free to submit your own.
For new feature requests that could be added after 1.0, please open a new thread:
https://github.com/bnpr/Malt/discussions/categories/feedback-feature-requests
For discussing proposed changes, write a direct reply instead of creating a new comment.
Important!
Breaking backward compatibility means old Malt scenes will have to be updated to work on the newer versions.
All the current changes from the Development branch will be merged into the Release branch, and the Development branch will be more unstable than it used to be.
From now on, I'd recommend using the Development version only for testing, and use the Release version for everything else.
Beta Was this translation helpful? Give feedback.
All reactions