Skip to main content
13 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,437
11 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,605
7 votes
Accepted

What algorithm is used in this animation from Tatami Galaxy?

It looks like a voronoi diagram with a non-Euclidean distance metric. Probably not Manhattan L1 but something close related, but maybe Mahalanobis with some kind of restriction on seed point ...
David's user avatar
  • 301
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
5 votes
Accepted

What's the simplest, open, animation format?

For what it's worth, the glTF Tutorials contain a section on Skinning that shows how the raw vertex and joint weight data feed into a vertex shader to distort the mesh. If you do design your own ...
emackey's user avatar
  • 369
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,801
4 votes
Accepted

Storing 3D animations for ray tracing

I think that it is important to classify between different types of animations here. One rough classification could be Rigid body animations Vertex skinning animations Others... Rigid body ...
Marco13's user avatar
  • 218
4 votes
Accepted

Pixel dispersion (dissolving) algorithms

A very simple low memory approach If you really want to use as little memory as possible, it can be done with not much more memory than that required to store a single image (the first frame) ...
trichoplax is on Codidact now's user avatar
3 votes
Accepted

Was Evans & Sutherland CT5 really created in 1981?

After some searching on the internet, I am fairly certain that it was made in 1981 or at least the same decade. I have found multiple sources that indicate the CT5 was made in or around the year 1981. ...
bram0101's user avatar
  • 1,605
3 votes
Accepted

glTF animation keyframe question

You're seeing channels and samplers there, not individual keyframes. In this case, one animation is simultaneously targeting the translation, rotation, and scale channels of the same node, with three ...
emackey's user avatar
  • 369
3 votes

Need help reasoning about video oscillation >60hz

Yeah, that makes sense. Most flat panel monitors on the market have a 60Hz refresh rate! So you are not going to be able to flicker faster than 60Hz due to technical limitation. Were you to do this ...
joojaa's user avatar
  • 8,437
3 votes
Accepted

Calculating Skeleton-Deformed Mesh Normals

You're right, standard skinning pipelines don't produce correct normals. You get similar problems when using translation on joints, which is very common in facial animation. The only way to get a ...
James Answer's user avatar
3 votes
Accepted

Animated rainbow distortion wave effect

The effect is called chromatic aberration; the way it’s usually done in games, and what’s being done there, is by reading the red / green / blue channels of an image at different offset positions. As ...
Noah Witherspoon's user avatar
2 votes

Pixel dispersion (dissolving) algorithms

You could do this entirely within an OpenGL/WebGL fragment shader: Attach the image you wish to emerge as a texture/sampler2D. Attach uniforms for the current time, as well as the time you want the ...
Jack's user avatar
  • 341
2 votes

Inverse Kinematics with more than 2 segments

What you have here is an underconstrained problem*. To solve this problem you do what you do to any other underconstrained system. This is also why you mostly only see the 2 joint version as it is not ...
joojaa's user avatar
  • 8,437
2 votes

Storing 3D animations for ray tracing

Pixar spent quite much time, money and other capital to archive all their renders. What they did was just to store the raw render description files their render engine used. The reason for this is ...
joojaa's user avatar
  • 8,437
2 votes

Software to compose separate models into an articulated model?

Is there any software which would let me import the existing models, define the bone hierarchy and the model which corresponds to each bone, and export a single articulated model in T-pose? I ...
AlexM's user avatar
  • 31
2 votes
Accepted

How can I use 3d animation to create a character that uses sign language?

This is quite a broad topic, so I can only give a general overview. If you've never done any interactive animation before, this might be too big a challenge to start with, and maybe you should think ...
Dan Hulme's user avatar
  • 6,840
2 votes

Was Evans & Sutherland CT5 really created in 1981?

As John said, yes it was there because my first job was working on content for it. That was before 1981. The 'snake room' was about 20 feet from my office and I did many demos on that system. My ...
Evan Ricks's user avatar
2 votes

compression of gif animation

GIF animation compressors normally do this automatically, using transparency in a given frame to avoid storing what has not changed from the previous frame. The reason it's not working in your case ...
Olivier's user avatar
  • 1,585
2 votes

What is the point of having integer-based draw routines in software rasterizer?

The following is really an assorted set of comments: Why integer? Floating-point hardware is (in general) far more complex than integer and so on many (old) CPUs it (a) might not have been available (...
Simon F's user avatar
  • 4,306
2 votes
Accepted

What noises can be sliced?

Worley noise, also known as cellular noise, has the same property. It just as easily implemented as Perlin noise and easily extends to higher dimensions. Thus the slicing of 4D Worley noise will ...
Reynolds's user avatar
  • 1,283
2 votes
Accepted

Which techniques do I need to animate a 3D model in my homemade engine

First decide how you are going to animate the model. The simplest way is to just have a separate mesh per frame of animation. This requires more memory to be dedicated to mesh data more artist time ...
ratchet freak's user avatar
2 votes
Accepted

Should animations be locked to FPS or Fixed time

You should use a fixed time for this. Consider the following: Your computer is super fast, you have high end hardware. Now you animate via FPS and make your animation look great. Let's say you had 120 ...
Tare's user avatar
  • 1,566
2 votes

What is the name of this moving color pixels effect, for animating a painting?

This effect is called Color Cycling (or Palette Shifting). Mark Ferrari has a great GDC talk where he demonstrates and explains the entire technique. You can view a bunch of his artwork based on this ...
eclmist's user avatar
  • 222
2 votes

Inspecting gltf animation data

I help maintain an open-source extension for VSCode called glTF Tools. Find the sampler for your animation. The input values will point to a list of times, and <...
emackey's user avatar
  • 369
1 vote
Accepted

Why are these 2 buffers joint while extracting glTF information?

The accessor (model.accessors[accessor_index]) has its own byteOffset and count values that ...
emackey's user avatar
  • 369
1 vote

Keep constant number of visible circles in 3D animation

You don't seem to be setting circle.position.z
Stefan Monov's user avatar
1 vote

Compute Speed of Spheres in 3D animation

I'd use the euclidean distance between two 3D positions. Velocity is distance over time. Time is a single frame in this case. $$\sqrt{(x2-x1)^2 + (y2-y1)^2 + (z2-z1)^2}$$ If you only move the camera,...
zeno's user avatar
  • 138
1 vote

Why do animated CG characters always feel fake?

Because animators haven't fully bridged the uncanny valley. There are a ton of little details you notice subconsciously that hasn't been fully mapped out. Things like how muscles and tendons move ...
ratchet freak's user avatar

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