In response to Schnitzelnagler
I'm getting tired of you throwing the term "Phong Shading" around. This isn't the first time you've abused it.

Phong Shading does not encompass every lighting solution that is smooth.
It has mostly to do with diffuse reflection (which is not unique to phong), Phong surface normal interpolation, and specularities. Diffuse reflection alone doesn't warrant the use of the term.

In all seriousness, Phong doesn't really apply to a non-3d environment. The fact that surface normals and specularities are involved kind of require a 3d environment. You could probably emulate it if you had normal maps associated to every sprite or tile graphic, but that is clearly not the case here.

Your screenshots might be using phong shading (though they are not a very good example of phong shading), but keep in mind that your examples cannot be considered 2D anymore. I don't think that Phong Shading can be feasibly applied to flat sprites in a 3D environment without a normal map, as it would be pretty clear that the sprite is flat. It would stand out and not look any better than flawed 2D implementations of lighting.
In response to Schnitzelnagler
D4RK3 54B3R wrote:
I'm getting tired of you throwing the term "Phong Shading" around. This isn't the first time you've abused it. Phong Shading does not encompass every lighting solution that is smooth.

I have assumed that a potential implementation of a 3D display mode for BYOND would use Phong shading. I'm not sure how that's abusing the term.

I don't think that Phong Shading can be feasibly applied to flat sprites in a 3D environment without a normal map, as it would be pretty clear that the sprite is flat.

When you look at this image do you really think "that person looks like a 2D sprite" because it doesn't have a normal map applied to it?

Even with normal maps the sprites would look flat because:
* They are 1, 4, or 8 directional.
* They may be billboards or standing at a fixed angle.
* They have limited resolution (they get blockier when you zoom in)
* Animations will clearly be a sequence of images and not a smoothly moving 3D model.
In response to Schnitzelnagler
Forum_account wrote:
When you look at this image do you really think "that person looks like a 2D sprite" because it doesn't have a normal map applied to it?

Yes, or a billboard or something.

> Even with normal maps the sprites would look flat because:
* They are 1, 4, or 8 directional.
* They may be billboards or standing at a fixed angle.
* They have limited resolution (they get blockier when you zoom in)
* Animations will clearly be a sequence of images and not a smoothly moving 3D model.

A normal map wouldn't be hindered by to any of those, except maybe the zoom issue... A normal map would make the lighting on a flat circle appear as if the it was actually a 3D sphere. To some degree at least; its really more for adding/removing/changing light details - but that would be the idea with a simple 2D sprite. If a light source was moving around a 2D sprite with a normal map applied, it should appear quite 3D.
You would apply this normal map to a flat surface, and make it appear to have that 3D design, purely from lighting effect.
Low polygon model on the left, same model with a normal map applied on the right.
In response to Schnitzelnagler
Forum_account wrote:
Even with normal maps the sprites would look flat

I know for a fact that they won't, because I have seen normal maps applied to sprites with pseudo-3d lighting solutions, and they look like very high poly models.

Yota made a small BYOND utility a while back that applied lighting and shading to a sprite with a normal map, and the stuff it put out looked damned good. Let me see if I can convince him to send me a copy for screencaps.

* Animations will clearly be a sequence of images and not a smoothly moving 3D model.

That just has to do with the number of frames in the animation and the framerate of the game.


Also, whoever said that something had to be 8 directional? It's not difficult to implement 16 directional or 32 directional or even 360 or 720 directional movable atoms in BYOND. It's kind of arbitrary how many directions are used.
In response to Schnitzelnagler
I'm not sure what the issue we're debating is. Are you trying to argue that a simple 3D implemenation would not be sufficient for BYOND unless it included normal maps?

D4RK3 54B3R wrote:
Also, whoever said that something had to be 8 directional? It's not difficult to implement 16 directional or 32 directional or even 360 or 720 directional movable atoms in BYOND. It's kind of arbitrary how many directions are used.

With a 3D display this would require built-in support. If you and I are viewing the same sprite from drastically different angles it will be represented on our screens using different directions of the same icon state.
In response to Schnitzelnagler
Wow, looks like I inadvertently stirred up a hornet's nest. I hope you all will take my remarks as creative input and not an attack. :)

Forum_account wrote:
Are you trying to argue that a simple 3D implemenation would not be sufficient for BYOND unless it included normal maps?

I'm thinking normal maps will be required for any meaningful lighting implementation, 3D or 2D. That Spies demo you showed earlier proves that it can be done without normal maps, but I hope that you don't consider that to be the best sort of display that BYOND can aim for. It's 3D, but it has little character. Normal maps are actually a lot easier than I had thought when I mentioned it yesterday and it works in 2D dynamic lighting environments.


D4RK3 54B3R wrote:
[...] It's kind of arbitrary how many directions are used.

With a 3D display this would require built-in support. If you and I are viewing the same sprite from drastically different angles it will be represented on our screens using different directions of the same icon state.

If you are shooting for something like Final Fantasy Tactics, with directional sprites in 3D scene, that could work. A full 3D display would require a directional vector and abandonment of the dir var (at least as an integer full of bit flags).

Form an earlier post:
Even with normal maps the sprites would look flat because:
* They are 1, 4, or 8 directional.

Each direction in the icon will have a corresponding normal map.

* They may be billboards or standing at a fixed angle.

In which case the normal map will be a single direction across the entire surface. We could make default flat normal maps for the built-in directions.

* They have limited resolution (they get blockier when you zoom in)

The entire zoomed pixel will still have the same lighting applied across it. If that's not good enough, surface normal interpolation is a very common method that is featured in many techniques, including Phong Shading.


* Animations will clearly be a sequence of images and not a smoothly moving 3D model.

I don't understand how this is an issue. Even 3D models are animated in discrete steps.


Falacy wrote:
Forum_account wrote:
Dream Maker's icon editor is sufficient for making 2D sprites but creating 3D models would require extra tools.

One of the many reasons BYOND will never be 3D. Though there are already external apps that exist for this purpose.

The same thing happened before with BYOND supporting icons larger than 32x32. You have to begin with an icon made in external apps and import it to your project.
In response to Schnitzelnagler
Shadowdarke wrote:
The same thing happened before with BYOND supporting icons larger than 32x32. You have to begin with an icon made in external apps and import it to your project.

Editing icons larger than 32x32 still doesn't work very well. The implementation of them into games doesn't work very well for that matter, you could pull off identical (if not better) results in < 10 lines of code.
Even unity doesn't have an actual 3D modeling program built in to it, it can only throw basic shapes together, so I would be accepting if BYOND didn't. Though Blender (the free 3D modeling program I've been using) is one of the worst programs I've ever used in pretty much every aspect - so I wouldn't mind them creating one for us either.
In response to Schnitzelnagler
Shadowdarke wrote:
I'm thinking normal maps will be required for any meaningful lighting implementation, 3D or 2D. That Spies demo you showed earlier proves that it can be done without normal maps, but I hope that you don't consider that to be the best sort of display that BYOND can aim for. It's 3D, but it has little character.

It has little character because there is one light source, one sprite, the icons are low resolution (and poorly drawn), and the maps aren't really designed to leverage 3D display capabilities. The lack of character has nothing to do with normal mapping - games have had character long before normal mapping became practical for real-time use.

The reason I'm supporting a 3D mode is not because it opens the door to more realistic graphics (though it would be nice) but because it opens the door to many new types of games. I guess this is a little counter-intuitive - it's a completely graphical update but it's more about game design than visuals. Currently BYOND can barely support the most basic first-person shooter. With a 3D display mode it could easily support an FPS. Normal mapping would be a nice feature to have but it isn't essential to developing new types of games.

There are many features that would be nice to have (3D models, reflections, shaders, shadows) but they don't create possibilties for new types of games, at least not to the extent that a basic 3D display mode does. These features are still useful and should be considered for future addition (by "future" I mean after our theoretical 3D mode has been implemented) but there are good reasons for these features to not be high priority.

Form an earlier post:
Even with normal maps the sprites would look flat because:
* They are 1, 4, or 8 directional.

Each direction in the icon will have a corresponding normal map.

The reasons I listed were in response to D4RK3 54B3R saying: "I don't think that Phong Shading can be feasibly applied to flat sprites in a 3D environment without a normal map, as it would be pretty clear that the sprite is flat." I wasn't trying to explain why normal maps couldn't be applied to sprites, I was explaining why they wouldn't really help.

The incorrect lighting on the sprite is a rather sublte hint that it's a flat sprite. There are obvious ways to tell that it's a flat sprite even if you have normal maps. This is almost a joke: the incorrect lighting tipping you off that it's a 2D sprite would be like opening your refrigerator, seeing it full of human heads, and yelling to your roommate, "holy crap! did you know that we're out of milk?!"
In response to Schnitzelnagler
I remember a program similar to BYOND called Fury2. It never got finished, but it had a pretty amazing dynamic light feature.

http://files.byondhome.com/TheMagicMan/fury2.jpg

That is it. All the light in that screenshot is dynamically generated. And the system to do this is very easy.
You simply go to the map editor, place a light and set it's colour, range and angle (and maybe a few other things), then place "blockers" that block light.
You can set the background ambient colour too. The engine does the rest for you.

The actual program never got finished, but you can find it here, along with source code (though it is written in VB).
http://sourceforge.net/projects/fury2/
You can play around with the program and see what it is capable of (though it's old and has compatibility issues with newer operating systems).

There might be something that can be scavenged from it and put to use, so it might be worth a look.
The picture explains most of it. Can't you do something to make that jagged line of sight more straight and less bad looking when viewed diagonally? Thanks

Image and video hosting by TinyPic

What you are seeing in this picture is some opaque walls that my character is peeping around causing my sight to be obstructed but the median between my obstructed sight and unobstructed sight is extremely jagged because it is diagonal.
Here's the mock-up Koil posted (reuploaded on Imgur, because TinyPic is terrible).

mockup
Four years later..
Nurse: "Doctor!"
Doctor: "..?"
Nurse: "The thread.. it's alive."
Doctor: "..!?"
In response to LordAndrew
With the implementation of bounds and whatnot, I don't see why this wouldn't be feasible, since BYOND isn't in 'maintenance mode' yet. It would be nice to have something that doesn't look jagged and tacky be native. Lighting based on bounds and opacity would be even better, being able to construct lighting effects(though, I'd imagine perfectly doable with animate() now in effect, I should probably find time to fiddle with that more) would give a whole new feeling to games on BYOND, make it feel more retail-ish.
I'd definitely like to improvement here before maintenance mode. :3
Page: 1 2 3 4 5