Readit News logoReadit News
nosferalatu123 commented on Derivatives and Logarithms of 3D Transforms   nosferalatu.com/./Derivat... · Posted by u/nosferalatu123
billfruit · a year ago
Is that an applet? What type of libraries could have been used to build that type of interactive 3D graphics
nosferalatu123 · a year ago
It's using the three.js library and a bit of javascript I wrote.
nosferalatu123 commented on Derivatives and Logarithms of 3D Transforms   nosferalatu.com/./Derivat... · Posted by u/nosferalatu123
xeonmc · a year ago
Yes, hence I wrote (axial translation)+(screw rotation) instead of just (translation)+(rotation).
nosferalatu123 · a year ago
Yep!
nosferalatu123 commented on Derivatives and Logarithms of 3D Transforms   nosferalatu.com/./Derivat... · Posted by u/nosferalatu123
xeonmc · a year ago
essentially you decompose the transformation into (axial translation) + (screw rotation) + (oriented orthogonal stretch) and each of them are just straightforward interpolation: axial is linear, screw is angular, and stretch is exponential.
nosferalatu123 · a year ago
(author here) Be careful because (ignoring scale for to keep things simple) a transformation T can be decomposed into a translation and rotation, such that T=Rotation * Translation, but that translation is not along the axis of rotation. You probably want to instead interpolate with a screw motion, which is a rotation about an axis along with a translation along that axis (a helical curve; a curve along the outside of a cylinder). The screw motion is what you get when you interpolate with exp(log(T)*t).
nosferalatu123 commented on Laplacian Mesh Smoothing by Throwing Vertices   nosferalatu.com/./Laplaci... · Posted by u/nosferalatu123
itishappy · a year ago
I don't think the algorithm as presented adds or removes new neighbors, preserving topology (except it won't prevent self-intersections using only neighbor positions). I imagine this is often used with some type of adaptive meshing algorithm for to make something like the clay editing model shown in the Substance demo.
nosferalatu123 · a year ago
(author here) That's correct. The algorithm preserves topology because no new vertices or indices are created. It can result in self intersecting meshes, but one way that this can be used is what Substance Modeler does, which is continuously remesh.
nosferalatu123 commented on Don't "optimize" conditional moves in shaders with mix()+step()   iquilezles.org/articles/g... · Posted by u/romes
nosferalatu123 · a year ago
A lot of the myth that "branches are slow on GPUs" is because, way back on the PlayStation 3, they were quite slow. NVIDIA's RSX GPU was on the PS3; it was documented that it was six cycles IIRC, but it always measured slower than that to me. That was for even a completely coherent branch, where all threads in the warp took the same path. Incoherent branches were slower because the IFEH instruction took six cycles, and the GPU would have to execute both sides of the branch. I believe that was the origin of the "branches are slow on GPUs" myth that continues to this day. Nowadays GPU branching is quite cheap especially coherent branches.
nosferalatu123 commented on Higher Order Derivatives of Transforms   nosferalatu.com/HigherOrd... · Posted by u/nosferalatu123
makerdiety · 2 years ago
Game developers, physicists, and other engineering-adjacent types don't know much higher math. If any.

It takes a special type of engineer to explore advanced abstractions and get familiar with them. An exceptional engineer, really.

nosferalatu123 · 2 years ago
Author here. My background is game development. Now I work on 3D modeling software. I wouldn't say I know "higher level math", because that seems like a very deep well...

What would be the best way to define "transform" here? What I mean is something that can be applied to a point, like a linear map. So translation, and/or rotation, and/or scaling, and/or skewing, are all things that can be done by this "transform" in 3D.

In computer graphics these are often expressed as 3x3 or 4x3 (or sometimes 4x4) matrices. But a "translation+quaternion" can also be a transform, or just a quaternion (a unit quaternion can be used to rotate points for example). So I'd be happy to use a better definition for "transform" than 'given a transform T that can be applied to a point' but I'm not quite sure what the best definition would be.

nosferalatu123 commented on Higher Order Derivatives of Transforms   nosferalatu.com/HigherOrd... · Posted by u/nosferalatu123
c32c33429009ed6 · 2 years ago
What is meant by a Transform in this context? The author doesn't seem to give a definition.
nosferalatu123 · 2 years ago
I meant a "transform" as a linear map. I'm using the word as it is used in computer graphics (my background), so it's something that translates, rotates, scales, etc. other things (such as points). That is often a 3x3 or 4x4 matrix, although it can also be a vec3 translation and a quaternion, or just a quaternion. I think "Transform" is clear in the context of computer graphics, but I see what you mean about it being vaguely defined in my blog post.

u/nosferalatu123

KarmaCake day120April 6, 2023View Original