This editor allows editing 2D tangent fields and to render in real time the anisotropic appearance defined by such field.
It is possible to move the object to see the anisotropic appearance at various angles.
Press the Mouse wheel to pan the camera.
Press Ctrl + Mouse wheel to rotate the object. Right mouse button can be used, but only with the Edit tool.
Use the mouse wheel to zoom.
To edit the tangent field it is possible to specify constraints using a vector like graphic editor. The constraints are then propagated to produce the smoothest tangent field satisfying them. Tools are located in the tools bar on the left side of the screen.
Allows to select a constraint on the screen. Selected constraints can then be moved, rotated and scaled at will using the handles that will appear on them. It is possible to move each point of a line constraint separately and well as add new points by double-clicking on the line.
Add a new line, left click to place the various points and Right mouse button, Enter or Escape to confirm. The constraint is tangent to the line direction.
Add a new rectangle. The constraint direction is constant.
Add a new ellipse. The constraint is tangent to the border.
This menu is placed in the right part of the screen. It allows to edit the selected constraint.
Specifies the constraint position.
Specifies the constraint rotation.
Specifies the constraint scale.
Specifies the constraint skew.
Rotate the constraint direction with respect to the default one. Constraints are color-encoded based on this parameter.
If selected the field will be aligned with the constraint border.
Duplicate the selected constraint.
Remove the selected constraint.
The information bar is located at the bottom of the screen.
On the left side the image resolution and the current mouse position can be read.
On the right side, the current frame rate and sample count are displayed.
This section contains a brief overview of the menus.
Creates a new project.
Creates a new project with the same dimension of a reference image. The reference image can be seen using "View -> Reference".
Save the current project.
Load a previously saved project.
Load a Wavefront mesh for visualization, note that this would disable the editing operation.
Unload a previously loaded mesh.
Load a reference image, does not affect the project state in any way. The reference image can be seen using "View -> Reference".
Load an image where the luminosity of each pixel encodes the anisotropy angle in [0, 180]. If one wants to change the conversion, without recompiling the project, it is possible to edit "assets/shaders/imageImporter_comp.spv". Its GLSL source code is located in "src/Field/Shaders/imageImporter.comp".
Load an image where the luminosity of each pixel encodes the anisotropy angle in [0, 90].
Load an image encoding the anisotropy as a 2D vector in the red/green channels.
If selected the last image loaded with be automatically reimported if is changed on disk. This allows integration with other image editing software.
Export an image where the luminosity of each pixel encodes the anisotropy angle in [0, 180]. If one wants to change the conversion, without recompiling the project, it is possible to edit "assets/shaders/imageExporter_comp.spv". Its GLSL source code is located in "src/Field/Shaders/imageExporter.comp".
Export an image where the 2D anisotropy direction is encoded in the red/green channels and the phase from the optimizer is encoded in the alpha one.
Export a binary image with the evaluated sine field produced by the optimizer.
Exit the application.
Undo the last constraint editing operation.
Redo the last constraint editing operation.
Open the render settings menu.
Open the optimizer settings menu.
Reset the original position of the image.
Render a realistic appearance of the object. The illumination is specified by an HDR environment map in "assets/textures/cubemap/". It is possible to change this to edit the lighting environment.
Slower realistic render using importance sampling. Will converge over time.
Noise-based visualization of the tangent field.
Cyclic color encoding to visualize the angle of the tangent field.
Sinusoidal-based visualization of the tangent field produced by the optimizer.
Shows the previously loaded reference image.
Fast rendering using bent normal.
Toggle the rendering of the constraints.
Toggle full-screen view.
Shows this help text.
Allows to edit the appearance of the material.
Changes the material albedo.
Changes the amount of anisotropy.
Changes the amount of roughness.
Allows specifying if the material is dielectric or metallic.
Allows to change the exposure to better visualize the HDR lighting effects.
Change the number of samples used by the "fast" rendering path.
Allows to edit the parameters of the optimizer.
Specifies the field representation used for averaging the neighborhood. Vector fields are affected by the bias inducted by the order of traversal, Tensor fields fail with orthogonal direction in a worse way. "Tensor field - vector fallback" tries to use tensor field and falls back to vector if the directions are too close to be orthogonal.
Uses a different algorithm to align the phases that improve the quality.
If enabled, the optimizer is run each time a constraint is moved and not only on mouse release.
Specifies the number of iterations for each level of the multi-resolution grid.
Specifies the number of iterations for each level of the multi-resolution grid when a constraint is moved.
Allows to specify an angle offset for the tangent field.
Developed by Giovanni Cocco.