This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tools:proposals [2019/05/27 13:26] – lightwolf | tools:proposals [2023/10/17 12:49] (current) – [Selections] lightwolf | ||
---|---|---|---|
Line 3: | Line 3: | ||
This is a list of plugin ideas that have been vetted and will at some point in time be available for voting by patrons. | This is a list of plugin ideas that have been vetted and will at some point in time be available for voting by patrons. | ||
- | ===== UV Transform | + | ===== Selections |
- | Similar in functionality | + | |
+ | Additional selections: Groups and Instancers | ||
+ | |||
+ | Click on an instance and select the instancer. | ||
+ | |||
+ | Click on an item and select the group. | ||
+ | |||
+ | Groups are defined by nulls hosting a special plugin or stored as item comments. | ||
+ | |||
+ | Groups can be created and removed using plugins. | ||
+ | |||
+ | Based on [[tools: | ||
+ | |||
+ | ===== Single Input, Multiple Outputs ===== | ||
+ | |||
+ | Take a single scalar input to drive any amount of outputs by distributing the value. With different spline based interpolations. | ||
+ | |||
+ | |||
+ | |||
+ | ===== Copy Deformer ===== | ||
+ | |||
+ | Copies positions of deformed vertices from one mesh (or a list of meshes) to the current one. Similar | ||
+ | Based on the same vertex count, if possible also based on the vertex position. | ||
+ | May be modified by weight maps. | ||
+ | |||
+ | This would allow for multiple skeletons driving the same mesh deformation. | ||
+ | |||
+ | ===== Visibility Toggle ===== | ||
+ | |||
+ | Toggles the visibility of special items such as targetting lines in a way similar | ||
+ | |||
+ | ===== " | ||
+ | |||
+ | Display | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Channel Panel ===== | ||
+ | A single, non-modal panel that contains all envelopes related to the current selection. | ||
+ | |||
+ | Beyond the basic channels common to all items, specific channels for meshes, lights or cameras will be displayed if available as well. | ||
+ | |||
+ | The panel has a custom scrollbar to scroll vertically if required. | ||
+ | |||
+ | Multiple channels can be selected and their value changed by dragging left/right in the viewport. | ||
+ | |||
+ | The plugin is implemented as a Master plugin with a LWPanels interface and a gizmo for the dragging information. | ||
+ | |||
+ | Filters can be defined and stored as a preset. The filters work by including/ | ||
+ | |||
+ | |||
+ | |||
+ | ===== UV Massaging ===== | ||
+ | |||
+ | Takes the output of a projection node and massages the UVs: | ||
+ | |||
+ | - Rotation | ||
+ | - Scale | ||
+ | - Offset | ||
+ | |||
+ | Automate tiling | ||
+ | |||
+ | ===== Sprite Sheet Image Mapper ===== | ||
+ | |||
+ | A sprite sheet is a single image that contains a number of rows and columns of smaller images that can be (but don't have to be) an animation. | ||
+ | |||
+ | The plugin would be like any of the other image texturing nodes, but with the following additions: | ||
+ | |||
+ | A columns and rows input the defines how many rows and columns of pictures are in the image (or X/Y size in pixels). | ||
+ | |||
+ | Additional inputs are a time/offset and speed envelope as well as matching nodal inputs. | ||
+ | |||
+ | The node will either use the sprites as a (looping) animation or will allow for picking individual pictures within the sprite sheet. | ||
+ | |||
+ | This includes a tool to create a sprite sheet within LW as well. | ||
+ | |||
+ | ===== Object selector ===== | ||
+ | |||
+ | As a command (which can be applied to a hotkey), it takes the current selection of items and selects all items that use the same LWOs. | ||
+ | Basically, select one layer of a LWO, activate the command | ||
+ | |||
+ | |||
+ | ===== Hatching shader ===== | ||
+ | |||
+ | A NPR shader to hatch surfaces, either procedurally or using image textures. | ||
+ | |||
+ | Optionally, add a Blend % to the Multi-Vector Switcher when interpolating. | ||
+ | |||
+ | Also, an additive version of the Multi-Vector Switcher (maybe using Blend modes as well). | ||
+ | |||
+ | |||
+ | ---- | ||
===== Fog Pixel Filter ===== | ===== Fog Pixel Filter ===== | ||
Line 10: | Line 103: | ||
One caveat: Due to the nature of pixel filters, there will be no fog behind transparencies. | One caveat: Due to the nature of pixel filters, there will be no fog behind transparencies. | ||
+ | ---- | ||
+ | ===== CCTV ===== | ||
+ | Replacement for the CCTV shader that was lost in 2018. Basically traces through a camera and maps the result to a projection. | ||
+ | ---- | ||
===== Spline Toolkit (S-Tk) ===== | ===== Spline Toolkit (S-Tk) ===== | ||
- | Due to the complexity and breadth, this will be a multi-stage set of plugins. We will try to make sure that a useful addition will be created per month. | + | Moved to [[tools:s-tk:start]] |
- | However, the first stage will take **two months of development** to get the foundation right. | + | ---- |
- | ==== Base Stage ==== | + | ===== Image Layers ===== |
- | A new Primitive Type((Just like Shapes and OpenVDB items)) will be developed, called " | + | A set of tools to deal with items that stem from a multi-layered image file. Could even be based on a new Primitive Type as well. |
- | Initially this will host a Bezier Spline((that' | + | ---- |
- | Internally, the splines will be managed using a global plugin((essentially a library that can be used by multiple plugins)) to allow other plugins to discover and use the splines. | + | ===== Mesh Falloff Node ===== |
- | To make the spline useful, we'll add a motion plugin as well as an evaluation node that can be used for motion node graphs. | + | Similar to the one present in Blender, needs more research to check what it actually does. |
- | The spline will be static | + | ---- |
- | Due to the complexity of getting the architecture right, The Base Stage will be a **two months** project on Patreon. | ||
- | Following the base stage, and of the following modules may be added in any order. | + | ===== Limited Region Manager ===== |
- | ==== Module 1 - Animatable splines ==== | + | Mainly a master plugin that can store multiple, different, limited regions. Also, limited regions may be animated (but likely not be used in lwsn). |
- | This adds envelopes to the spline controls points and handles and updates the gizmo to allow for keyframing the points and handles. | + | ---- |
- | ==== Module 2 - More Spline types ==== | ||
- | This adds CSplines (the ones used by default for LightWave envelopes) as well as B-Splines. Splines can be converted, but only the control points are translated. The shape of the curves will change. | + | ===== Colour Curves Node / Image Filter / Pixel Filter ===== |
- | ==== Module 3 - Smarter Beziers ==== | + | A plugin similar to the curves adjustment available in image processing applications. |
- | Allows for designating | + | Requires |
- | ==== Module 4 - Deform ==== | + | This would be a two months project |
- | Adds a node and a deformer plugin to deform a mesh along a spline. | + | ---- |
- | ==== Module 5 - Proximity Node ==== | + | ===== Deformation modifiers ===== |
- | A node that computes the closest distance | + | Deformation plugins |
- | ==== Module 6 - Renderable Splines ==== | + | All of these would come with Gizmos for interactive control in the viewport. |
- | Allows for splines to be rendered. | + | This would be one plugin per month. |
- | ===== Image Layers ===== | + | * < |
+ | * **Twist** | ||
+ | * **Bend** | ||
- | A set of tools to deal with items that stem from a multi-layered image file. Could even be based on a new Primitive Type as well. | + | ---- |
+ | |||
+ | |||
+ | ====== Proposals | ||
+ | |||
+ | ===== Instance Filter Node ===== | ||
+ | |||
+ | Implemented for September 2020 | ||
+ | |||
+ | Similar to the Instance Inspector, this provides | ||
+ | |||
+ | This way, specific paths can be taken in the node graph using the logic nodes and switchers, depending on whether the currently shaded instance has been selected or not. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Audio Frequency Node (Kenneth ;) ===== | ||
+ | |||
+ | Implemented in April/May 2020 | ||
+ | |||
+ | Load audio files, use FFT to extract the amplitude at specific frequencies and expose them as scalar values. | ||
+ | |||
+ | The result of the FFT computation will be cached in memory for best performance, | ||
+ | |||
+ | There will also be a channel modifier. | ||
+ | |||
+ | Multiple audio files are supported. The allowed file formats will depend | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Multi Variables Node ===== | ||
+ | |||
+ | Implemented in March 2020 | ||
+ | |||
+ | A node that provides multiple values types as nodal outputs and GUI controls. They can be customized. | ||
+ | |||
+ | The idea is to allow for creating once node that holds a collection of parameters used elsewhere in the node graph. | ||
+ | |||
+ | Starts out as an empty node, new outputs are added by right clicking on the node. | ||
+ | |||
+ | Outputs and respective controls may possibly be renamed. | ||
+ | |||
+ | Bonus node: Elbow | ||
+ | |||
+ | An empty node where inputs can be added, which pass through to automatically added outputs. Used to clean up the layout of node graphs. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Oscillator - node/motion modifier ===== | ||
+ | |||
+ | Implemented in February 2020. | ||
+ | |||
+ | The problem currently... | ||
+ | Nodal: the amount of nodes needed to setup and control an oscillating motion... time, multiplication, | ||
+ | |||
+ | Oscillator Motion modifier: it’s incredibly useful but it’s also a modal window. This means you have to open it up, tweak, close, see if it’s what you want, stop, open, tweak, close, preview...... | ||
+ | |||
+ | Would love to see a db&w, self contained oscillator node and/or modifier, where I can simply press play and get creative, without the convoluted nodal setup or constant ui clicking! Built in falloff, following of ref nulls, different patterns/ | ||
+ | |||
+ | Almost like a, say, waveform generator in a synthesizer then. | ||
+ | So basically, a choice of base waveforms, frequency and amplitude adjustments | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | ===== DoF Tool ===== | ||
+ | |||
+ | Implemented in November 2019. | ||
+ | |||
+ | An interactive tool to set the DoF parameters for a camera, including animated values. | ||
+ | |||
+ | Will also display the volume that's in focus and provide handles for the near, far and focal point. | ||
+ | |||
+ | ===== UV Transform ===== | ||
+ | Similar in functionality to the UV Distort tool developed in March 2019. However, this will allow you to move, rotate and resize a selection of points in UV space using a bounding box interface. Similar to the transform tool in Photoshop. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Multi Mixer ===== | ||
+ | |||
+ | Similar to the Multi Switcher nodes, but allows for mixing like the morph mixer does. Developed in August 2020. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Transformation Deformer ===== | ||
+ | |||
+ | A deformer that can be placed on the deformation stack (even multiple times) and performs a simple transformation (position, rotation, scale), possibly including weights. | ||
+ | |||
+ | ---- | ||
+ | ===== Wheel Rotation node ===== | ||
+ | |||
+ | A node to compute the rotation of a wheel according to a distance moved. Can also output the raw distance and may rely on a cache. |