16,959 reputation
23469
bio website sam.zoy.org
location Paris, France
age 36
visits member for 3 years, 9 months
seen 2 hours ago

I live in Paris, France.

I work on video games (computers and consoles) for a living. I write free software and all kind of crazy shit for fun. My interests: image processing, video coding, rendering, game development, maths, physics, compression, cryptography.


15h
comment Is this a viable architecture for lag compensation?
Bear in mind that the clients must only get partial updates from the server. No client should have knowledge of the other players’ actions, only of their visible results.
2d
comment Collision detection between triangle and polygon
You probably want the separation algorithm, but are you aware that most games use simple hitboxes rather than complex polygon collision detection?
Oct
26
comment Hexagon collision detection for fast moving objects?
@LuisAlves yes and no… all the logic works, but you’ll have to replace vB-vA with g(t)-f(t) where f and g are A and B’s positions over time. Since this is no longer a straight line, you’ll have to solve a box — parametric curve intersection problem.
Oct
25
comment How do I calculate distance from a point to a rectangle?
@BitNinja yes, that’s what the question assumes. If it’s not axis-aligned, the fastest/simplest algorithm will depend on how the rectangle information is stored.
Oct
21
comment Should I have multiple small textures or a single big one?
Maybe try both and measure the performances?
Oct
9
comment C++ Visual Studio Sprite Animation Function only setting values for certain Rect structs in SDL
You seem to be loading the file into playerTextureRight but call setClips with argument playerSpriteSheet. Did you check your variables?
Sep
13
comment glm direction vector rotation
The length of the cross product of two unit vectors is the sin() of the angle they form, so it will be a unit vector only if the two vectors are orthogonal. In general you need to ensure your quaternions are normalised, but in the case of angleAxis() the function takes care of it.
Jul
16
comment Is it legal to allow users to install replacement game data containing real-world personalities?
This seems relevant: even former dictators could sue you if they aren’t pleased with how you depict them
Jul
4
comment match 3 Shuffling
@Lucas Have you actually calculated or maybe measured the “anomaly”? Even in an extremely pessimistic setting (a 9×9 board with only 4 different candy colours), this algorithm requires 3 iterations in average. The odds that more than 100 iterations are needed are less than 1:500,000. The odds that more than 1000 are needed are 1 in 7 million, the odds that more than 10000 are needed are 1 in 100 million (which happens for very degenerate and unbalanced board settings). The average computer does those 10000 iterations in about 10 milliseconds.
Jul
1
comment Unreal Engine 4 — Casting
@Guest102 “is incorrect”, or “doesn’t seem to work” is not a helpful description of your problem. Be more specific.
Jul
1
comment Unreal Engine 4 — Casting
@Mario it’s 100% C++ (with some build-time generation of headers).
Jul
1
comment Unreal Engine 4 — Casting
@Katu it’s definitely not UScript; the author just said he/she was used to UScript from UE3.
Jun
26
comment How can I simplify this code to compute the shortest rotation between two angles?
They are the same in absolute value, but the sign matters, too. rotationBetween(0,1) should return 1 but it is expected that rotationBetween(1,0) returns -1.
Jun
26
comment How can I simplify this code to compute the shortest rotation between two angles?
This cannot be correct. It returns the same value for rotationBetween(a,b) and rotationBetween(b,a).
Jun
8
comment Surface normal to screen angle
The screen angle is not “obviously” pi/4. It is closer to pi/6, actually. The normal vector always lies on a line that goes through the centre of the sphere. Here is a more accurate drawing.
Jun
4
comment Convert vector interpolation to quaternion interpolation? (Catmull-Rom)
Have you tried simply interpolating the quaternion components, then normalising the result? It is definitely “more direct” and the results are very similar.
May
29
comment How to rotate a set of points on z = 0 plane in 3-D, preserving pairwise distances?
@cagirici Could you maybe paste sample values for A B C P Q R, for the two intermediate matrices, and for the final matrix? This could help reproduce results and find the problem.
May
29
comment How to rotate a set of points on z = 0 plane in 3-D, preserving pairwise distances?
@cagirici This is usually caused by a) mismatched matrix multiplication order, b) mismatched matrix layout. Since you don’t use a fully standard API, it might require tweaking. Try to transpose M in makeMatrix(), or try to swap the arguments to mul(), or try to do both.
May
29
comment How to rotate a set of points on z = 0 plane in 3-D, preserving pairwise distances?
@cagirici okay, if you know three points in the target plane, then the problem becomes easy and you don’t even need a b c d. I posted new code in my answer.
May
29
comment How to rotate a set of points on z = 0 plane in 3-D, preserving pairwise distances?
Can you maybe rewrite the question to say precisely what data you know and what you don’t? Right now it looks like you know a, b, c, d, but it seems that you actually don’t? Also in your 2D representation, the b distance isn’t actually preserved, is that an error?