<-> Jun 8 2018, 10:59 pm This should look great on something like this: For this, is a filter necessary or is it possible to do it by matrix?
 <-> Jun 8 2018, 11:47 pm For the latter, neither. That's a 3D transform and it won't be possible till 3D matrices are a thing.
 <-> Jun 9 2018, 2:12 am In response to Lummox JR This seems 2D to me:
 <-> Jun 9 2018, 4:23 am In response to YURIRAMOS YURIRAMOS wrote: This seems 2D to me: It's not, and of course it seems 2D to you. You are looking at a render of 3D coordinate space in 2 dimensions. You are actually transforming that 2D image in 3D space and the program is displaying the result as a projected 2D image. Photoshop uses 4x4 matrices for its free transformation tool. BYOND has 3x3 matrices, which can do 2D affine transforms. ```a b c | 1 0 0 d e f | 0 1 0 0 0 1 | 0 0 1 ``` Lummox is considering implementing 4x4 matrices (or some variant thereof), which would allow 3D projection. ```a b c 0 | 1 0 0 0 d e f 0 | 0 1 0 0 g h i 0 | 0 0 1 0 0 0 0 1 | 0 0 0 1 ```
 <-> Jun 9 2018, 5:27 am Hardware Rendering AND 2.5D? Good god Lummox you mad man
 <-> Jun 9 2018, 2:47 pm In response to YURIRAMOS YURIRAMOS wrote: This seems 2D to me: Yes, what you did in that animation is 2D, but it is not a two-dimensional linear transformation (and no linear or affine transformation will transform Lummox's avatar to what you did in that image). Any affine matrix encodes an affine transformation, and affine transformations have the property that if L and L' are parallel lines, then after they are transformed by an affine transformation they will continue to be parallel (Provided they are still lines, of course. It's possible that one or both would be mapped to points instead).
 <-> Jun 9 2018, 7:15 pm I did it just by changing the width and height in the paint with a specific rule. Using only 2 dimensions. I know there's a way to do it using more dimensions, but you can also do it that way. Low resolution and pixelated to make my life easier in this demo.
 <-> Jun 10 2018, 1:59 am I don't think it was ever claimed that it's impossible to do such a thing in only two dimensions (nor am I claiming that what you're doing is treated as purely two dimensional in whatever program you're using). The (implicit) claim was that a transformation involving perspective can be done in only two dimensions using linear or affine transformations. In fact, it can not*. *Nor can it actually be done in any dimension using affine or linear transformation. You have to bring in perspective transformations to do that.
 <-> Jun 11 2018, 10:58 pm In response to Popisfizzy [ ] I made a mistake in the middle, but you can understand.
 <-> Jun 11 2018, 11:43 pm In response to YURIRAMOS YURIRAMOS wrote: I made a mistake in the middle, but you can understand. Again, a 3x3 matrix cannot do what you are trying to do. A 4x4 matrix can. BYOND only supports 3x3 matrices at the moment. Holy shit, learn to pre-calculus.
 <-> Jun 12 2018, 12:08 am In response to Ter13 I did not use a 4x4 matrix to do this.
 <-> Jun 12 2018, 1:29 am (Edited on Jun 12 2018, 1:36 am) In response to YURIRAMOS YURIRAMOS wrote: I did not use a 4x4 matrix to do this. If you think this can be done with BYOND's existing matrices, then do it. We're just trying to save you from wasting your time.
 <-> Jun 12 2018, 9:12 am Yuri, there are basically two ways to do a non-parallelogram deformation of a rectangle: that is to say a trapezoid or an arbitrary convex quad. Method #1 appears to be something close to what you're doing in the video: proportional transforms on a line-by-line basis that requires chopping the image up into pieces, combined with regular affine transforms like rotations that 2D matrices can handle. Or more succinctly, a program might be able to take four vertices and interpolate between them to get the texture coordinates. This however will never produce the right texture coordinates for a 3D perspective illusion, because nearer portions of the texture need to be larger. Method 1 is also harder to implement. Method #2 uses a 3D perspective transform; this is what Photoshop does when you tell it to realign a rectangle to four new arbitrary vertices. It produces the correct textural results every time. The key to this method is that the object is assumed to have a certain reference Z coordinate z0; in Photoshop it's z0=1/3. When the transform is finished, the Z coordinate of each point is used as a divisor, so X and Y are scaled--relative to the center--by z0/z. So when a point is twice as far away as its reference Z, it's half the distance to the origin that it normally would be. This method works the exact same way a 2D transform does, except that the points are converted by the GPU from 3D space to 2D, and the texture interpolation works the same way.
 <-> Jun 12 2018, 12:58 pm In response to YURIRAMOS You clearly do not understand what is being said to you. Would you like me to formally prove to you that parallel lines can not be non-parallel after a linear or affine transformation? Either learn about what is being said to you, or I will prove this trivial result to you.
 <-> Jun 12 2018, 7:11 pm I think there's a language barrier at play.
 <-> Jun 15 2018, 2:53 am In response to Lummox JR That's what I thought, I know there are 2 methods (maybe even more). What I did not know is how hard to code, costly and size is for machine. Thanks for the sane reply.
 <-> Jun 15 2018, 9:27 am In response to YURIRAMOS The good news is that once 3D matrices are available, it should be doable to rewrite the rendering code to use perspective transforms, since the GPU does this kind of transform natively.
 <-> Jun 19 2018, 11:35 pm http://i.imgur.com/7LbNbYm.gifv It's not like 3D is impossible in BYOND, this was done in 2016. With operator overloading, it's even easier.
 <-> Jun 19 2018, 11:41 pm In response to Somepotato Those triangles have no texture. If they did, the perspective illusion would be shattered. That demo is merely warping triangles with affine transforms.
Page: 1 2