Point-normal triangle
Point-normal triangle (PN triangle)
What it is
A PN triangle is a way to turn a flat triangle into a smooth, curved surface using the triangle’s corner positions and corner normals. It creates a cubic Bézier triangle described by 10 control points, keeps the original triangle’s vertices and normals, and can give the appearance of smooth shading between neighboring triangles at a low rendering cost.
Why use it
- It makes flat triangles look curved and smooth when rendered.
- It preserves the triangle’s corners and their normals, helping maintain correct shading.
- It adds only modest extra work, making it suitable for real-time graphics.
How it works (overview)
- Input: three vertices P1, P2, P3 in 3D and their vertex normals N1, N2, N3.
- A cubic Bézier triangle is built from 10 control points bijk, where i + j + k = 3.
- The first three control points are the triangle’s corners:
- b300 = P1
- b030 = P2
- b003 = P3
- The six edge control points depend on the vertices and normals. For each edge, a quantity ωij = (Pj − Pi) · Ni is computed, and the edge control points are defined by combining neighboring vertices and normals in a specific way (examples below):
- b012, b021, b102, b201, b120, b210 are set using the nearby vertices P and the corresponding ω and normal Ni.
- The interior control point b111 is derived from edge points. First, compute:
- E as the average of the six edge control points
- V as the average of the three vertices (P1 + P2 + P3) / 3
- Then b111 = E + (E − V)/2
(An alternative suggested form is b111 = E + 5(E − V).)
- The 10 control points define a smooth cubic surface that interpolates the original triangle and its vertex normals.
What it achieves
- The PN triangle reproduces the original vertex normals in the interpolated surface, producing smooth shading across triangle boundaries.
- It provides a visually smoother surface for triangle-based models while keeping rendering costs low.
In short
A Point-normal triangle adds curved detail to a flat triangle by using the corner positions and normals to define a cubic Bézier triangle with 10 control points. The result is smoother shapes with efficient rendering, suitable for real-time computer graphics.
This page was last edited on 1 February 2026, at 20:30 (CET).