Jump to content
Double Fine Action Forums
Sign in to follow this  
DF Lee

Art Update #5: World Creation Process

Recommended Posts

Now for a serious question:

Does this mean that by design there won't be any way to do vertical scrolling?

I'm hard pressed to think of a point-and-click adventure that had much vertical scrolling (maybe Machinarium in parts?), but it seems like the "HD safe zone" design choice means there won't be any scope for vertical scrolling.

Share this post


Link to post
Share on other sites

Now for a serious question:

Does this mean that by design there won't be any way to do vertical scrolling?

I'm hard pressed to think of a point-and-click adventure that had much vertical scrolling (maybe Machinarium in parts?), but it seems like the "HD safe zone" design choice means there won't be any scope for vertical scrolling.

Share this post


Link to post
Share on other sites
I think there should be more pixels. Everywhere.

If they add too many more we would wind up with something close to L.A. Noir realism here.

And since L. A. Noir does not even run on my computer that would be bad. ;)

Share this post


Link to post
Share on other sites
I think there should be more pixels. Everywhere.

If they add too many more we would wind up with something close to L.A. Noir realism here.

And since L. A. Noir does not even run on my computer that would be bad. ;)

Share this post


Link to post
Share on other sites

Fascinating stuff there. I knew those floaty things are called something, but I never knew they were called nards.

Share this post


Link to post
Share on other sites

Fascinating stuff there. I knew those floaty things are called something, but I never knew they were called nards.

Share this post


Link to post
Share on other sites

Oliver can you articulate what you mean by a concave polygon with a hole?

Cheers,

C

Here is an example. The black outline is the contour of the polygon (sorry for the rounded edges) and the red area represents what is inside of the polygon. Notice how there is a hole in the polygon between the branches and how the outer shape has concave 'dents'.

Redbot_Tree.png

Hi Oliver,

I'm interested how you construct the polgyons? Automatically by simple flood-filling and region-growing on the alpha-channel, to get the outside region and the inners seperately. If you compute the outer hull you won't get the inside regions. Or is it done manually?

Share this post


Link to post
Share on other sites

Oliver can you articulate what you mean by a concave polygon with a hole?

Cheers,

C

Here is an example. The black outline is the contour of the polygon (sorry for the rounded edges) and the red area represents what is inside of the polygon. Notice how there is a hole in the polygon between the branches and how the outer shape has concave 'dents'.

Redbot_Tree.png

Hi Oliver,

I'm interested how you construct the polgyons? Automatically by simple flood-filling and region-growing on the alpha-channel, to get the outside region and the inners seperately. If you compute the outer hull you won't get the inside regions. Or is it done manually?

Share this post


Link to post
Share on other sites

This update is amazing. Thanks for all the details and examples!

A question from a complete layman: why do you call the depth axis as "Z"? One would expect Z to be the vertical one, parallel to the gravity. I know it's just a name that change absolutely nothing, but what are the reasons for it? Is it some kind of a convention in the industry? Is it somehow easier to work mainly in XY plane than in XZ? Denoting depth as Y would ensure that all the coordinates are positive, which is always nice, right?

Share this post


Link to post
Share on other sites

This update is amazing. Thanks for all the details and examples!

A question from a complete layman: why do you call the depth axis as "Z"? One would expect Z to be the vertical one, parallel to the gravity. I know it's just a name that change absolutely nothing, but what are the reasons for it? Is it some kind of a convention in the industry? Is it somehow easier to work mainly in XY plane than in XZ? Denoting depth as Y would ensure that all the coordinates are positive, which is always nice, right?

Share this post


Link to post
Share on other sites
This update is amazing. Thanks for all the details and examples!

A question from a complete layman: why do you call the depth axis as "Z"? One would expect Z to be the vertical one, parallel to the gravity. I know it's just a name that change absolutely nothing, but what are the reasons for it? Is it some kind of a convention in the industry? Is it somehow easier to work mainly in XY plane than in XZ? Denoting depth as Y would ensure that all the coordinates are positive, which is always nice, right?

I can try to explain :)

So as you can see in the attachment is a quick illustration of how a cube would look in a 3D program, (colorcoded for simplicity).

And while we are at it notice how the axes are relative in the object as well;

So if someone suggest to rotate the box in Z they are suggesting around it's pivot (center of rotation) relative to how they see the object. This means either tilting it towards the left or the right. because usually that means rotating around the Z axis.

In a nerdy sense most pole dancers are rotating around the Y axis. If you are watching someone on a swing set from the side they are rotating in Z based on your point of view, however if you were to push someone on a swing they would be rotating in X based on your POV.

X and Z directions can be anything because you don't know what's angle you are seeing something from in 3D space, but to make it a lot easier we speak of these directions, (if not clearly established,) in relation to the camera or Point Of View.

Hope that helps :)

3Dspace.jpg

3Dspace.jpg.b95fb32c2a75237d656814b506fe

Share this post


Link to post
Share on other sites
This update is amazing. Thanks for all the details and examples!

A question from a complete layman: why do you call the depth axis as "Z"? One would expect Z to be the vertical one, parallel to the gravity. I know it's just a name that change absolutely nothing, but what are the reasons for it? Is it some kind of a convention in the industry? Is it somehow easier to work mainly in XY plane than in XZ? Denoting depth as Y would ensure that all the coordinates are positive, which is always nice, right?

I can try to explain :)

So as you can see in the attachment is a quick illustration of how a cube would look in a 3D program, (colorcoded for simplicity).

And while we are at it notice how the axes are relative in the object as well;

So if someone suggest to rotate the box in Z they are suggesting around it's pivot (center of rotation) relative to how they see the object. This means either tilting it towards the left or the right. because usually that means rotating around the Z axis.

In a nerdy sense most pole dancers are rotating around the Y axis. If you are watching someone on a swing set from the side they are rotating in Z based on your point of view, however if you were to push someone on a swing they would be rotating in X based on your POV.

X and Z directions can be anything because you don't know what's angle you are seeing something from in 3D space, but to make it a lot easier we speak of these directions, (if not clearly established,) in relation to the camera or Point Of View.

Hope that helps :)

Share this post


Link to post
Share on other sites
Now for a serious question:

Does this mean that by design there won't be any way to do vertical scrolling?

I'm hard pressed to think of a point-and-click adventure that had much vertical scrolling (maybe Machinarium in parts?), but it seems like the "HD safe zone" design choice means there won't be any scope for vertical scrolling.

I think you can vary this from scene to scene so that they can scroll whichever way you like. However, since this scene only scrolls left and right, it's limited in that way for this scene only.

Share this post


Link to post
Share on other sites
Now for a serious question:

Does this mean that by design there won't be any way to do vertical scrolling?

I'm hard pressed to think of a point-and-click adventure that had much vertical scrolling (maybe Machinarium in parts?), but it seems like the "HD safe zone" design choice means there won't be any scope for vertical scrolling.

I think you can vary this from scene to scene so that they can scroll whichever way you like. However, since this scene only scrolls left and right, it's limited in that way for this scene only.

Share this post


Link to post
Share on other sites
This update is amazing. Thanks for all the details and examples!

A question from a complete layman: why do you call the depth axis as "Z"? One would expect Z to be the vertical one, parallel to the gravity. I know it's just a name that change absolutely nothing, but what are the reasons for it? Is it some kind of a convention in the industry? Is it somehow easier to work mainly in XY plane than in XZ? Denoting depth as Y would ensure that all the coordinates are positive, which is always nice, right?

I can try to explain :)

So as you can see in the attachment is a quick illustration of how a cube would look in a 3D program, (colorcoded for simplicity).

And while we are at it notice how the axes are relative in the object as well;

So if someone suggest to rotate the box in Z they are suggesting around it's pivot (center of rotation) relative to how they see the object. This means either tilting it towards the left or the right. because usually that means rotating around the Z axis.

In a nerdy sense most pole dancers are rotating around the Y axis. If you are watching someone on a swing set from the side they are rotating in Z based on your point of view, however if you were to push someone on a swing they would be rotating in X based on your POV.

X and Z directions can be anything because you don't know what's angle you are seeing something from in 3D space, but to make it a lot easier we speak of these directions, (if not clearly established,) in relation to the camera or Point Of View.

Hope that helps :)

Thanks for the answer but I was asking about something else :)

I understand that the situation you presented is typical in 2D games: XY is the plane of the screen, Z axis going out of the screen is depth. My question is: why do it like this? Is it somehow more convenient? Is it because of historical reasons?

I guess a more natural coordinate system would be to have Z as vertical, X as horizontal and positive Y going inside the scene as depth, and to call the plane of the screen XZ, like in this image

op8dom.jpg

Apparently Z=depth is natural for everyone in this thread and I'm just curious why.

Share this post


Link to post
Share on other sites
This update is amazing. Thanks for all the details and examples!

A question from a complete layman: why do you call the depth axis as "Z"? One would expect Z to be the vertical one, parallel to the gravity. I know it's just a name that change absolutely nothing, but what are the reasons for it? Is it some kind of a convention in the industry? Is it somehow easier to work mainly in XY plane than in XZ? Denoting depth as Y would ensure that all the coordinates are positive, which is always nice, right?

I can try to explain :)

So as you can see in the attachment is a quick illustration of how a cube would look in a 3D program, (colorcoded for simplicity).

And while we are at it notice how the axes are relative in the object as well;

So if someone suggest to rotate the box in Z they are suggesting around it's pivot (center of rotation) relative to how they see the object. This means either tilting it towards the left or the right. because usually that means rotating around the Z axis.

In a nerdy sense most pole dancers are rotating around the Y axis. If you are watching someone on a swing set from the side they are rotating in Z based on your point of view, however if you were to push someone on a swing they would be rotating in X based on your POV.

X and Z directions can be anything because you don't know what's angle you are seeing something from in 3D space, but to make it a lot easier we speak of these directions, (if not clearly established,) in relation to the camera or Point Of View.

Hope that helps :)

Thanks for the answer but I was asking about something else :)

I understand that the situation you presented is typical in 2D games: XY is the plane of the screen, Z axis going out of the screen is depth. My question is: why do it like this? Is it somehow more convenient? Is it because of historical reasons?

I guess a more natural coordinate system would be to have Z as vertical, X as horizontal and positive Y going inside the scene as depth, and to call the plane of the screen XZ, like in this image

op8dom.jpg

Apparently Z=depth is natural for everyone in this thread and I'm just curious why.

Share this post


Link to post
Share on other sites
This update is amazing. Thanks for all the details and examples!

A question from a complete layman: why do you call the depth axis as "Z"? One would expect Z to be the vertical one, parallel to the gravity. I know it's just a name that change absolutely nothing, but what are the reasons for it? Is it some kind of a convention in the industry? Is it somehow easier to work mainly in XY plane than in XZ? Denoting depth as Y would ensure that all the coordinates are positive, which is always nice, right?

I can try to explain :)

So as you can see in the attachment is a quick illustration of how a cube would look in a 3D program, (colorcoded for simplicity).

And while we are at it notice how the axes are relative in the object as well;

So if someone suggest to rotate the box in Z they are suggesting around it's pivot (center of rotation) relative to how they see the object. This means either tilting it towards the left or the right. because usually that means rotating around the Z axis.

In a nerdy sense most pole dancers are rotating around the Y axis. If you are watching someone on a swing set from the side they are rotating in Z based on your point of view, however if you were to push someone on a swing they would be rotating in X based on your POV.

X and Z directions can be anything because you don't know what's angle you are seeing something from in 3D space, but to make it a lot easier we speak of these directions, (if not clearly established,) in relation to the camera or Point Of View.

Hope that helps :)

Thanks for the answer but I was asking about something else :)

I understand that the situation you presented is typical in 2D games: XY is the plane of the screen, Z axis going out of the screen is depth. My question is: why do it like this? Is it somehow more convenient? Is it because of historical reasons?

I guess a more natural coordinate system would be to have Z as vertical, X as horizontal and positive Y going inside the scene as depth, and to call the plane of the screen XZ, like in this image

op8dom.jpg

Apparently Z=depth is natural for everyone in this thread and I'm just curious why.

I don't understand why it makes sense for Z to be vertical. Aren't these labels just completely arbitrary? They could just as well be named A, B and C; H, R and F or John, Hank and Charlie.

Share this post


Link to post
Share on other sites
This update is amazing. Thanks for all the details and examples!

A question from a complete layman: why do you call the depth axis as "Z"? One would expect Z to be the vertical one, parallel to the gravity. I know it's just a name that change absolutely nothing, but what are the reasons for it? Is it some kind of a convention in the industry? Is it somehow easier to work mainly in XY plane than in XZ? Denoting depth as Y would ensure that all the coordinates are positive, which is always nice, right?

I can try to explain :)

So as you can see in the attachment is a quick illustration of how a cube would look in a 3D program, (colorcoded for simplicity).

And while we are at it notice how the axes are relative in the object as well;

So if someone suggest to rotate the box in Z they are suggesting around it's pivot (center of rotation) relative to how they see the object. This means either tilting it towards the left or the right. because usually that means rotating around the Z axis.

In a nerdy sense most pole dancers are rotating around the Y axis. If you are watching someone on a swing set from the side they are rotating in Z based on your point of view, however if you were to push someone on a swing they would be rotating in X based on your POV.

X and Z directions can be anything because you don't know what's angle you are seeing something from in 3D space, but to make it a lot easier we speak of these directions, (if not clearly established,) in relation to the camera or Point Of View.

Hope that helps :)

Thanks for the answer but I was asking about something else :)

I understand that the situation you presented is typical in 2D games: XY is the plane of the screen, Z axis going out of the screen is depth. My question is: why do it like this? Is it somehow more convenient? Is it because of historical reasons?

I guess a more natural coordinate system would be to have Z as vertical, X as horizontal and positive Y going inside the scene as depth, and to call the plane of the screen XZ, like in this image

op8dom.jpg

Apparently Z=depth is natural for everyone in this thread and I'm just curious why.

I don't understand why it makes sense for Z to be vertical. Aren't these labels just completely arbitrary? They could just as well be named A, B and C; H, R and F or John, Hank and Charlie.

Share this post


Link to post
Share on other sites

(...)

I don't understand why it makes sense for Z to be vertical. Aren't these labels just completely arbitrary? They could just as well be named A, B and C; H, R and F or John, Hank and Charlie.

Why vertical Z makes sense? In fact I don't know :D Maybe it's a cultural thing, maybe it comes from zenith. Wake me up in the middle of the night and I'll draw Z as vertical.

Obviously you can call the axes whatever and rotate them however you like; Probably there is also no law against some other fancy coordinate systems.

It's just that normally more simple solutions are better and you should have a reason to work in John, Hank and Charlie system.

If I understand correctly, Z=depth means that everything in the scene has a negative value of Z (or 0), which (while obviously not impossible to deal with) seems to be strange and unnecessary. That's why I asked why. I was simply hoping for some clever explanation that I can use as a conversation starter :]

Share this post


Link to post
Share on other sites

(...)

I don't understand why it makes sense for Z to be vertical. Aren't these labels just completely arbitrary? They could just as well be named A, B and C; H, R and F or John, Hank and Charlie.

Why vertical Z makes sense? In fact I don't know :D Maybe it's a cultural thing, maybe it comes from zenith. Wake me up in the middle of the night and I'll draw Z as vertical.

Obviously you can call the axes whatever and rotate them however you like; Probably there is also no law against some other fancy coordinate systems.

It's just that normally more simple solutions are better and you should have a reason to work in John, Hank and Charlie system.

If I understand correctly, Z=depth means that everything in the scene has a negative value of Z (or 0), which (while obviously not impossible to deal with) seems to be strange and unnecessary. That's why I asked why. I was simply hoping for some clever explanation that I can use as a conversation starter :]

Share this post


Link to post
Share on other sites

The whole Z up vs Z depth is one of the great computer graphics debates (along w/ row vs column matrices :P). Ultimately the choice is arbitrary and you can convert from one to the other pretty easily. As far as I can tell, the root difference comes from how you think of 2D, which 3D is then an extension of.

Some people think of 2D like a drawing. Since a drawing is usually made lying flat on a table X and Y are in the plane of the table. When you go from 2D drawing to 3D scene, clearly the new axis, Z, is up. This convention is used by a lot of 3D graphics programs w/ CAD background like Max or AutoCAD.

Other people think of 2D like a computer image. Since computer images are displayed on a monitor, X and Y are in the plane of the computer display. When you go from 2D computer image to 3D scene, clearly the new axis, Z is into the screen (i.e. depth). This convention is used by 3D graphics programs w/ a graphics background (like Maya) and is the default in DirectX and OpenGL.

Share this post


Link to post
Share on other sites

The whole Z up vs Z depth is one of the great computer graphics debates (along w/ row vs column matrices :P). Ultimately the choice is arbitrary and you can convert from one to the other pretty easily. As far as I can tell, the root difference comes from how you think of 2D, which 3D is then an extension of.

Some people think of 2D like a drawing. Since a drawing is usually made lying flat on a table X and Y are in the plane of the table. When you go from 2D drawing to 3D scene, clearly the new axis, Z, is up. This convention is used by a lot of 3D graphics programs w/ CAD background like Max or AutoCAD.

Other people think of 2D like a computer image. Since computer images are displayed on a monitor, X and Y are in the plane of the computer display. When you go from 2D computer image to 3D scene, clearly the new axis, Z is into the screen (i.e. depth). This convention is used by 3D graphics programs w/ a graphics background (like Maya) and is the default in DirectX and OpenGL.

Share this post


Link to post
Share on other sites

Hi Oliver,

I'm interested how you construct the polgyons? Automatically by simple flood-filling and region-growing on the alpha-channel, to get the outside region and the inners seperately. If you compute the outer hull you won't get the inside regions. Or is it done manually?

The polygons are authored manually in 2HB. An artist simply plots and exterior and maybe multiple interior contours and the tool figures out the rest, so it's a pretty quick process.

I would love to write an automated algorithm for this, but in my experience there are always edge cases that cause problems. We'll spend the development time in other areas instead... :-)

Thanks for the question.

Share this post


Link to post
Share on other sites

Hi Oliver,

I'm interested how you construct the polgyons? Automatically by simple flood-filling and region-growing on the alpha-channel, to get the outside region and the inners seperately. If you compute the outer hull you won't get the inside regions. Or is it done manually?

The polygons are authored manually in 2HB. An artist simply plots and exterior and maybe multiple interior contours and the tool figures out the rest, so it's a pretty quick process.

I would love to write an automated algorithm for this, but in my experience there are always edge cases that cause problems. We'll spend the development time in other areas instead... :-)

Thanks for the question.

Share this post


Link to post
Share on other sites
Other people think of 2D like a computer image. Since computer images are displayed on a monitor, X and Y are in the plane of the computer display. When you go from 2D computer image to 3D scene, clearly the new axis, Z is into the screen (i.e. depth). This convention is used by 3D graphics programs w/ a graphics background (like Maya) and is the default in DirectX and OpenGL.

In the case of OpenGL, this decision also makes sense if you consider that the API supports 2D coordinates as well. Meaning that you can specify a vertex with just X and Y (the Z is implicitly set to 0). So unless you've rotated your base with the model or projection matrices, you can use these API functions to draw 2D graphics like HUDs etc, and this is possible precilsely because X and Y are in the plane of the screen. I expect any framework designed to work with both 2D and 3D CG (or a mix thereof) uses this convention for the same reason.

And this is just the screen coordinates of course. You world coordinates could have their axises pointing any way you like, since those coordinates get transformed to screen coordinates via a matrix of your choice...

Share this post


Link to post
Share on other sites
Other people think of 2D like a computer image. Since computer images are displayed on a monitor, X and Y are in the plane of the computer display. When you go from 2D computer image to 3D scene, clearly the new axis, Z is into the screen (i.e. depth). This convention is used by 3D graphics programs w/ a graphics background (like Maya) and is the default in DirectX and OpenGL.

In the case of OpenGL, this decision also makes sense if you consider that the API supports 2D coordinates as well. Meaning that you can specify a vertex with just X and Y (the Z is implicitly set to 0). So unless you've rotated your base with the model or projection matrices, you can use these API functions to draw 2D graphics like HUDs etc, and this is possible precilsely because X and Y are in the plane of the screen. I expect any framework designed to work with both 2D and 3D CG (or a mix thereof) uses this convention for the same reason.

And this is just the screen coordinates of course. You world coordinates could have their axises pointing any way you like, since those coordinates get transformed to screen coordinates via a matrix of your choice...

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...