mirror of
https://github.com/facebookresearch/pytorch3d.git
synced 2025-12-21 14:50:36 +08:00
back face culling in rasterization
Summary: Added backface culling as an option to the `raster_settings`. This is needed for the full forward rendering of shapenet meshes with texture (some meshes contain multiple overlapping segments which have different textures). For a triangle (v0, v1, v2) define the vectors A = (v1 - v0) and B = (v2 − v0) and use this to calculate the area of the triangle as: ``` area = 0.5 * A x B area = 0.5 * ((x1 − x0)(y2 − y0) − (x2 − x0)(y1 − y0)) ``` The area will be positive if (v0, v1, v2) are oriented counterclockwise (a front face), and negative if (v0, v1, v2) are oriented clockwise (a back face). We can reuse the `edge_function` as it already calculates the triangle area. Reviewed By: jcjohnson Differential Revision: D20960115 fbshipit-source-id: 2d8a4b9ccfb653df18e79aed8d05c7ec0f057ab1
This commit is contained in:
committed by
Facebook GitHub Bot
parent
3c6f9220fc
commit
4bf30593ff
@@ -140,16 +140,16 @@ def load_obj(f_obj, load_textures=True):
|
||||
If there are faces with more than 3 vertices
|
||||
they are subdivided into triangles. Polygonal faces are assummed to have
|
||||
vertices ordered counter-clockwise so the (right-handed) normal points
|
||||
into the screen e.g. a proper rectangular face would be specified like this:
|
||||
out of the screen e.g. a proper rectangular face would be specified like this:
|
||||
::
|
||||
0_________1
|
||||
| |
|
||||
| |
|
||||
3 ________2
|
||||
|
||||
The face would be split into two triangles: (0, 1, 2) and (0, 2, 3),
|
||||
both of which are also oriented clockwise and have normals
|
||||
pointing into the screen.
|
||||
The face would be split into two triangles: (0, 2, 1) and (0, 3, 2),
|
||||
both of which are also oriented counter-clockwise and have normals
|
||||
pointing out of the screen.
|
||||
|
||||
Args:
|
||||
f: A file-like object (with methods read, readline, tell, and seek),
|
||||
|
||||
Reference in New Issue
Block a user