Skip to main content
28 votes
Accepted

Why are quads used in filmmaking and triangle in gaming?

For 3D modeling, the usual reason to prefer quads is that subdivision surface algorithms work better with them—if your mesh is getting subdivided, triangles can cause problems in the curvature of the ...
Noah Witherspoon's user avatar
14 votes

How to achieve gimbal lock with Euler angles?

A gimbal is a pivoted support that allows you to rotate around one axis. Now it so happens that Euler rotations* work like a set of 3 gimbals attached to each other,...
joojaa's user avatar
  • 8,457
12 votes
Accepted

How to achieve gimbal lock with Euler angles?

Rotations in 3D are normally done with matrices. The xyz Euler angles can be converted to matrices so that it can be used in the rotation. That is where something called rotation order comes in. ...
bram0101's user avatar
  • 1,615
9 votes

Why are quads used in filmmaking and triangle in gaming?

As @Noah Witherspoon correctly, says triangle subdivision does not work as well as quad subdivision. Although, in the beginning triangles could not be subdivided at all. However, he does not really ...
joojaa's user avatar
  • 8,457
8 votes
Accepted

Why do I need to inverse the orientation matrix of a camera to be able to translate it in the direction it is facing?

People always forget that there is no "camera" in OpenGL. In order to simulate a camera you have to move the whole world inversely. So if you want ur camera looking 30 degrees downward, you move the ...
gallickgunner's user avatar
7 votes

What is the use of homogenous divide?

First of all we need to understand why do we need 4x4 matrices in the first place. With 3x3, we couldn't represent translation as it wasn't a linear transformation (it displaces the origin). So in ...
gallickgunner's user avatar
7 votes
Accepted

What's the difference between Clipping and Culling?

When it comes to graphics, the term "culling" by itself doesn't really have a single definition or location within the pipeline. The term is sometimes applied to primitives and it is sometimes applied ...
Nicol Bolas's user avatar
  • 9,997
6 votes
Accepted

Minimum requirements to uniquely represent a 3D object in space

A rigid body has 6 degrees of freedom, in 3D- space. So that means you need 6 values to represent the object. The common way to do this is to store a position vector for position and 3 rotations. But ...
joojaa's user avatar
  • 8,457
6 votes

What is missing in this image that stops it from looking like a photograph?

The hair seems to have sampling noise or aliasing in it. This might be poor jpeg compression but it does not look like it. I've never seen hair part that way (could just be me). The neck looks a ...
Olivier's user avatar
  • 1,585
6 votes

How to build a 3d model from 2d pictures

This is a bit different from a conventional photogrammetry problem. You're not trying to estimate a 3D world from 2D projections. You have actual 3D information - you have the imaging slices - and you ...
Jacob Panikulam's user avatar
6 votes

Was Evans & Sutherland CT5 really created in 1981?

The CT5 was designed before 1981. I started working at E&S in May 1981. The CT5 was fully designed by then and 3 had been built. All 3 were still at E&S and hadn't shipped yet when I started. ...
John's user avatar
  • 61
6 votes
Accepted

How do graphic engine developers debug their 3D graphics code?

I'm programming mostly in OpenGL. In this case, the very first thing I do is setting up KHR_debug extension. It provides a way to subscribe to messages generated by GL drivers - from errors to ...
joe_chip's user avatar
  • 237
6 votes

Generate mesh from pointcloud data

one popular Real time surface reconstruction method is TSDF (Truncated Signed Distance Function) used by Microsoft for the Kinect. It is based on the VRIP method but it is faster. It is based on depth ...
ChaimDryzun's user avatar
6 votes
Accepted

Could some give an explanation or hint about this kind of equation? $\left(- \sqrt{X^{2} + Y^{2}} + 1\right) \cos{\left (2 \pi X + \phi \right )}$

The R part generates a cone where the point is at (0, 0, 1) and it spreads out below that. It meets the x-y plane at the unit circle: The ...
user1118321's user avatar
  • 3,441
6 votes
Accepted

How to decide which way to triangulate a quad?

A simple heuristic that many 3D content creation apps use is to split along the shorter of the two diagonals of the quad. This generally seems to work pretty well. It minimizes the appearance of long, ...
Nathan Reed's user avatar
  • 25.3k
5 votes
Accepted

How does a rigged model work?

The magic is that the mesh is attached to the skeleton. In it's simplest form, this is done by assigning each vertex to a bone. When a vertex is assigned to a bone, that means that it will always ...
Alan Wolfe's user avatar
  • 7,811
5 votes

Improved Laplacian smoothing of noisy surface meshes

This is a quite common property of smoothing in 3D. When you have some data and you smooth it out you get some kind of average of the local variation. And this works fine, and stably, in one ...
joojaa's user avatar
  • 8,457
5 votes

How to use multithreading in 3D software renderer to speed up fetching texture values

It could be that you have to overcome a different bottleneck first. Have you ever read Jim Blinn's "The Truth About Texture Mapping"? (I had a quick search to see if I could find a non-paywalled ...
Simon F's user avatar
  • 4,336
5 votes

why is translating in 3D space the same as shearing in 4D space?

In a linear transformation system, your origin is always a fixed point, since 0*anything = 0. So imagine you have a cinema screen, and the origin is at the centre of the screen. Using linear ...
russ's user avatar
  • 2,402
5 votes
Accepted

How did the hard, accurate shadows, work in early 3d (2000 - 2004) games?

Having not worked on these games, I can only speculate... but from your description, it sounds like a crude shadow map with orthogonal projection and no depth information. It probably has (or had) a ...
Olivier's user avatar
  • 1,585
5 votes
Accepted

Vulkan: efficient way to update VBO mesh vertices?

With OpenGL I would have to reload whole vertex VBO's. No you wouldn't. You can use glBufferSubData I suppose with Vulkan there could be a way to directly ...
Jherico's user avatar
  • 556
5 votes
Accepted

What are the i,j,k components of a 3d mesh on plot.ly (online)?

Most mesh drawing tools use triangles to draw meshes, for technical reasons. You could simply specify the coordinates of the three vertices of each triangle, but that is a bit wasteful in terms of ...
Paul92's user avatar
  • 216
4 votes

Is there a standard specification for 3D graphic representation?

As other answers have mentioned, there are multiple competing formats for storing 3D data. However, one specific format has appeared since this question was asked, that has many characteristics you'd ...
Narrateur du chaos's user avatar
4 votes
Accepted

How to properly direct light sample GGX in path tracing

This may simply be a typo or oversight. Note that in the previous section they've been discussing the microsurface BxDFs $f^m_r(\mathbf{i},\mathbf{o},\mathbf{m})$ and $f^m_t(\mathbf{i},\mathbf{o},\...
Nathan Reed's user avatar
  • 25.3k
4 votes

Mix shader looks wrong on my path tracer

As suggested in the comments, I created an exact scene in Blender using the same .obj. After adding a mix shader node and setting one side to diffuse and the other to a perfect mirror, you can see ...
Henry Bergin's user avatar
4 votes

What metrics are used for deciding if a 3D object is visible?

Visibility for culling (or passing to the render pipeline) is very sensitive to false negatives. False positives are not a big deal because when rendering the Z buffer will take care of that. This ...
ratchet freak's user avatar
4 votes
Accepted

3D projection that increases objects' size as they become more distant

After a quick google of 'Inverted perspective' I found out that you have five different names for it; Reverse perspective, inverse perspective, inverted perspective, divergent perspective and ...
bram0101's user avatar
  • 1,615
4 votes
Accepted

Extract visible vertices from a 3D geometry model

Idea A: Draw an invisible mesh that will occlude the points we don't want. Create a mesh from the point cloud. Render that mesh to a depth buffer but not to the color buffer. Render the point cloud ...
Julien Guertault's user avatar
4 votes

Does this 3D rendering method exist? How is it called? Is there any C++ algorithm for it?

Yes, such rendering exists. It is called a parametric surface and there are several methods you can render such entities. In this case you are talking of bezier patches. Turn the object into enough ...
joojaa's user avatar
  • 8,457

Only top scored, non community-wiki answers of a minimum length are eligible