17,690 reputation
23673
bio website sam.zoy.org
location Paris, France
age 36
visits member for 4 years, 4 months
seen 3 mins 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.


Jun
15
comment Transform Matrix multiplication order
The confusion comes from the fact that you are talking about local transformations (where the frame remains linked to the object), whereas the transformations described here happen in world space (where there is only one fixed reference frame, the world). Conceptually, your way of seeing things is valid, and it is equivalent to applying transformations in reverse order.
May
16
comment Finding which tiles are intersected by a line, without looping through all of them or skipping any
possible duplicate of How do I generalise Bresenham's line algorithm to floating-point endpoints? (the question isn’t actually about Bresenham)
May
5
comment Algorithm that always returns the same pseudorandom output if given the same input of seed, x and y?
I have posted the code. Maybe refresh the page? But, anyway, your stubbornness is hopeless and your objections indicate that there are too many things you don’t understand and you should either read about them or trust the people who do. If after so much information has been given to you, you still “don't need to measure”, well you’re just not the kind of person I want to help; hopefully my answer can still be useful to someone else. Have fun!
May
5
comment Algorithm that always returns the same pseudorandom output if given the same input of seed, x and y?
@NovaCrist Gee, that C++ code is 5 times faster than MurmurHash3. I’m pretty sure you actually didn’t measure anything.
May
5
comment Algorithm that always returns the same pseudorandom output if given the same input of seed, x and y?
You just do not seem to understand how a PRNG is a hashing function, and how a PRNG can be fast. Seriously, learn to listen to advice from professional developers who know their stuff. Don’t dismiss suggestions based on an “overhead” you didn’t measure. I edited my answer with a C++ implementation; it’s three lines of code; it’s a proven algorithm; it can be trivially adapted to 2 or 4 or 30 variables instead of 3 depending on your requirements. Unless you have a real reason, you should use established, available standards instead of rolling custom code you’ll have to debug and maintain.
May
4
comment Algorithm that always returns the same pseudorandom output if given the same input of seed, x and y?
@NovaCrist There is nothing wrong with “shuffling around values”, that’s someting most PRNGs and hashing algorithms have in common. You use words like “categorically”, “unsuitable”, “approximate”, “silly”, but are you sure you fully grasp the concepts you are tackling? If you are getting artifacts with the method I suggest, you are doing someting wrong, because it’s a mathematically correct solution to your problem. See for instance this code which I used to generate this image.
Apr
28
comment Java OpenGL Perspective matrix not working
It’s not particularly “incorrect”. It’s probably preferable to have an explicit constructor mat4(1.0) for this anyway.
Apr
27
comment How can I go about testing games on a console
UE4 does not support the PS3. Did you mean PS4? If so, you’d still need a PS4 test kit, and yes, that whole registration thing… but maybe your best bet would be to make friends with someone who has access to a test kit :-)
Apr
7
comment Algorithm that always returns the same pseudorandom output if given the same input of seed, x and y?
Dude, this is pseudocode. As I said, just use a different PRNG if you don’t like rand().
Apr
6
comment Algorithm that always returns the same pseudorandom output if given the same input of seed, x and y?
How much slower exactly?
Feb
17
comment Affine transformation: rotate a plane parallel to another plane
oops, yes, it should be U! Fixed.
Feb
14
comment Rotating an object with quaternion
Something in your answer must be wrong. The (0,0,1,0) quaternion represents a 180-degree rotation.
Jan
5
comment How is this particular HLSL condition treated with respect to compile- or run-time evaluation?
This is only half right. Uniform variables obviously don’t need to be known at compile time. However, when their value is set by a technique, then the multiple compilation you describe will happen.
Dec
24
comment 2D AABB vs AABB side of collision and collision depth
The answer to the first question can be found here: gamedev.stackexchange.com/a/24091/5864 again using Minkowski sums. I’m afraid I don’t really understand your second question, since the collision depth does not really depend on the shape of the objects. Maybe a drawing would help clarifying.
Dec
24
comment 2D AABB vs AABB side of collision and collision depth
I think this post will answer most of your questions: gamedev.stackexchange.com/a/55991/5864
Dec
21
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.
Dec
19
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?