teodron
Reputation
2,529
Top tag
Next privilege 3,000 Rep.
 1d comment Adding quaternions is useful? @immibis yes :). Although, when computing weighted averages of quaternions in the tangent plane, reprojection is done via the exp map (in which case the term is no longer equivalent to normalization). 1d comment Adding quaternions is useful? @STKOscar the operation simplification is more of a consequence in the case of infinitesimal rotations, whereas the `nlerp` is mostly used because of it being a faster approximation to `slerp` (no need to evaluate trigonoemtric functions, only a square root - needless to say, if you do many such computations per frame, it saves on some CPU cycles). So yes, with `nlerp` you get a faster, but more inaccurate approximation to a blended rotation. The difference between `slerp` and `lerp` is the velocity at which the shortest path between the rotations is traversed - i.e. non-natural animations. 1d comment Adding quaternions is useful? Minor comments: 1) it is not at all common to add quaternions when coding scientific or gaming applications since they're mainly use to represent and compose rotations AND 2) it is not completely ok to to map a rotation matrix to a quaternion and revert back due to the fact quaternions double cover the rotation group (i.e. `q` and `-q` represent the same physical rotation). 1d answered Adding quaternions is useful? May 3 reviewed Edit Identity matrix, What does it really do? May 3 revised Identity matrix, What does it really do? Rephrased and corrected spelling and syntax. Apr 22 comment Smoothing a rotation vector @TobiasW: mathematically, the results is not exactly a correct average (unless, I think, the axis of rotation is the same). Nevertheless, it works well enough if the quaternions are close to each other. Depending on the obtained results and input data, you and the OP might not have anything to worry about. The OP still needs to convert to quats, then back to rotation vectors. Apr 22 comment Smoothing a rotation vector @Chiquis you can convert a rotation vector to a quaternion. I assume that your rotation vector is `v = angle * unitDirection`; therefore, compute the angle as the norm of `v` and recover the normalized `unitDirection`. You should be able to convert that to quaternion form. Apr 22 comment Smoothing a rotation vector Actually, computing the weighted average of n quaternions is not going to amount to that pseudocode and it cannot be done analytically. It requires a "gradient descent" iterative process, computing the exp and log maps to switch back and forth between the unit hypersphere and the tangent plane where you actually estimate the average. This is a reference for that: hal.inria.fr/hal-00789164v2/document. Apr 20 reviewed Approve Is UDP still better than TCP for data-heavy realtime games? Apr 20 reviewed Approve Is UDP still better than TCP for data-heavy realtime games? Apr 19 comment Does it make sense to use both TCP and UDP at once? To make the answer a bit "meatier", could you provide a short (very short) list of options/references for UDP-based transport libraries? (perhaps ENET, RakNet, zeroMQ, UDT?). As per my comment above, I am sure I have seen a discussion on these somewhere on this site, but it might be worth replicating a fragment of that informaiton. Apr 19 comment Does it make sense to use both TCP and UDP at once? Be sure to read the rest of the threads on this site concerning udp and tcp. You will find several details that essentially deal with your questions. As a hypothesis: I suspect there are hybrid protocols over UDP that try to get the best out of both worlds, i.e. lower latency, contention strategy, load balancing and delivery guarantees. As suggested, search for related questions on the topic and narrow down your question to something that you feel was not addressed here yet. Mar 13 awarded Yearling Mar 11 revised How do I determine if one polygon completely contains another? corrected pseudocode Mar 11 comment How do I determine if one polygon completely contains another? @BrandonKohn it should work fine for endpoint intersection depending on how you implement `PointInsidePolygon()`. For the edge overlap, one must check whether the `innerEdge` is completely contained in the `outerEdge`. It is perhaps the time to update the answer to account for this discussion. Mar 11 revised How do I determine if one polygon completely contains another? corrected pseudocode Jan 29 reviewed Approve Minecraft Forge 1.8 referencing mod problem Jan 25 awarded Popular Question Dec 16 comment Leapfrog integration vs Euler integrator You got a downvote without an explanation. Let us consider the referred wikipedia page. These are the equivalent update equations - upload.wikimedia.org/math/b/a/a/…. The main difference is that you're not using \Delta t /2, you're using 2*\Delta. Apart from that, maybe the whole thing can be done in one update call..