Coder Social home page Coder Social logo

yavne's Introduction

Yet Another Vertex Normal Editor (Y.A.V.N.E.)

This Blender addon provides a set of tools for editing vertex normals. As seen in the following image, Y.A.V.N.E. can dramatically improve the visual quality of a mesh without altering geometry.

yavne

Download

Select one of the following links depending on the version of Blender that you are using:

User Interface

Y.A.V.N.E. is available within the 3D View > Sidebar > Tools tab for any mesh object in Edit mode.

location-2 80

Vertex Normal Weight

Vertex weight types determine how each vertex normal is calculated as the weighted average of adjacent face normals. Y.A.V.N.E. provides several weighting options:

  • Uniform - Faces normals are averaged evenly.
  • Corner Angle - Face normals are averaged according to the corner angle of a shared vertex in each face. This is the smooth shading approach used by Blender.
  • Face Area - Face normals are averaged according to the area of each face.
  • Combined - Face normals are averaged according to both corner angle and face area.
  • Unweighted - Face normals are not averaged; vertex normals are static. "Set", "Merge", and "Transfer Shading" operators result in unweighted vertices.

weight_comparison

Each vertex has exactly one weight type. For quick-and-easy shading, it may be sufficient to assign the Combined weight type to all vertices of a mesh. However, thoughtful use of a variety of weight types often yields better results.

Face Normal Influence

Face influence types determine which face normals are considered when calculating vertex normals. In the case that a vertex is shared by faces of different types, only normals from the most influential faces contribute to the resulting vertex normal.

influence_comparison

Faces have Medium influence by default. A typical workflow involves assigning Weak influence to transitional portions of a mesh, such as bevels (I). Alternatively, users can specify more influential areas by assigning Strong influence (II). It is even possible to use all three face influence types in a single mesh (III).

Get & Set Normals

Basic manual editing of vertex normals is possible with the Get and Set tools.

Set simply assigns the stored normal vector to all selected vertices.

Get is a little more involved in that it has multiple modes of operation based on the user's current selection:

  • A face normal is stored if exactly one face is selected.
  • A vertex normal is stored if exactly one vertex is selected.
    • If the selected vertex has a split normal then the user may interactively select which one to store. get_split_normal

Merge

Merge is similar to Blender's "Remove Doubles" operator. However instead of welding vertices within a threshold distance of each other, this tool averages vertex normals.

It can be used to create seamless transitions across mesh boundaries, such as a split between the head and torso of a character.

merge

Transfer Shading

Interpolated normals can be transferred from a source mesh to the nearest selected vertices of the target (active) mesh.

One scenario in which this tool might be useful is when a user wants to add detail along curved sections of a mesh. Cutting faces creates undesirable shading artifacts. By transferring shading from the original mesh, it is possible to correct such imperfections and achieve the desired result.

transfer_shading

Update Vertex Normals

It is necessary to recalculate vertex normals after making changes to geometry. Options are available for adjusting how the calculation is performed.

Linked Face Weights factor the areas of adjacent faces into the calculation of face weighted vertex normals. For instance, all coplanar face areas are summed when this option is enabled and the corresponding link angle is set to zero degrees.

Auto Smooth sharpens edges based on the angle between faces. The behavior is similar to Blender's builtin Auto Smooth option.

update_options

Flat Face Shading preserves shading discontinuities caused by flat faces.

Version History

2.0.3

  • Disabled multiprocessing for POSIX OS
  • Moved UI from "Tool" to "Extended Tools" in sidebar

2.0.1

  • Exposed flat face shading as an option

2.0.0

  • Updated to support Blender 2.80

1.9.2

  • Forced sharp edge visibility
  • Fixed divide-by-zero exception with Merge tool

1.9.0

  • Added option to sharpen edges based on the angle between faces
  • Added option to factor linked face areas into the calculation of face weighted vertex normals
  • Added support for flat shaded faces
  • Implemented concurrent processing of vertex normals for Unix-like systems
  • Refactored unweighted vertex normals to use loop data layers
  • Optimized algorithm for splitting vertex normals

1.3.0

  • Added "Merge" feature
  • Added "Medium" face influence type

1.1.0

  • Adapted code to be compatible with changes to "Object.ray_cast" interface

1.0.0

  • Initial release

yavne's People

Contributors

fedackb avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.