high angle viewed sprities

Moderator: GZDoom Developers

User avatar
Enjay
 
 
Posts: 26517
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Re: high angle viewed sprities

Post by Enjay »

I think the biggest argument against this is how much it would be used. I'd be very surprised if many people used the feature to any great extent. I mean, ZDoom has supported 16 angle sprites for many years and yet there are only a tiny number of mods that ever used them. The resource production implications are enormous for this suggestion.

Models (be that MD2/MD3/Unreal format or Voxels) do pretty much what is required here and, because they are designed for a true 3D view, would probably do it better too.
Arctangent wrote:
  • Actor sprites require a very specific naming scheme, which isn't expandable at all. Like, how would you add a top view of BAL1A0? BOSSE3? POSSF2F8? That's already up to eight characters, the max amount in the .wad format. Even if we make this feature .pk3-only, though, how would we add information for vertical viewing angle without confusing the parser?
Not that I think this feature is viable, but that's actually one of the things that probably could be solved reasonably easily. There is already something similar in principle to what I'm thinking about in the player sprites. PLAY* are the regular player sprites but PLYC* is used for crouching. The engine knows to use PLYC when the player is crouched and there has to be a PLYC sprite for every equivalent PLAY sprite. A character definition in ZScript could be given additional properties to specify which sprite set to use when the actor is seen from upper/lower angles. Of course, it would get messy for actors that use a variety of different sprite names in different states.
User avatar
Matt
Posts: 9696
Joined: Sun Jan 04, 2004 5:37 pm
Preferred Pronouns: They/Them
Operating System Version (Optional): Debian Bullseye
Location: Gotham City SAR, Wyld-Lands of the Lotus People, Dominionist PetroConfederacy of Saudi Canadia
Contact:

Re: high angle viewed sprities

Post by Matt »

Enjay wrote:The engine knows to use PLYC
Given the issues we've already got even with that, I don't think that's much of an argument in favour of this feature. 😬
User avatar
Enjay
 
 
Posts: 26517
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Re: high angle viewed sprities

Post by Enjay »

To be fair, the problem there is more to do with sprite squishing when using non standard player sprite names/skins than the 1 for 1 implementation of PLAY=PLYC when crouched.

I suppose something like:

Code: Select all

	See:
		POSS AABBCCDD 4 A_Chase;
		Loop;
	
	See.Upper
		POSU AABBCCDD 4 A_Chase;
		Loop;

	See.Lower
		POSD AABBCCDD 4 A_Chase;
		Loop;
could be feasible but it's all moot anyway given that the feature won't be happening.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: high angle viewed sprities

Post by Graf Zahl »

If this was done it would have to be additional rotations that automatically get selected by the renderer. So wait: What letters can we use here? A-G are already taken, that'd leave us with 19 remaining ones, we need 32 to have equivalents for all 16 regular rotations.
User avatar
Rachael
Posts: 13530
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her
Contact:

Re: high angle viewed sprities

Post by Rachael »

Curse the old operating system developers for making only 8 characters for a filename the standard! :P

Although to be fair - even kilobytes of RAM was quite a commodity in those days...
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: high angle viewed sprities

Post by Graf Zahl »

Curse them more for a case insensitive file system. Had this not been done, nobody would ever have thought of creating case insensitive file systems for modern OSs or container formats.
User avatar
Pixel Eater
 
 
Posts: 667
Joined: Wed Aug 02, 2017 12:31 am
Location: In between the Moon and you, between the buried and me.

Re: high angle viewed sprities

Post by Pixel Eater »

I'm confused. Does it need to match the number of rotations? I'd think there only needs to be one additional top sprite per frame (maybe share one for walking) and then the rotation be handle engine-side (optionally interpolated).
Edit: I'm thinking for walking and idle animations it could be done with a bobbing effect via uniform scaling.
User avatar
Pixel Eater
 
 
Posts: 667
Joined: Wed Aug 02, 2017 12:31 am
Location: In between the Moon and you, between the buried and me.

Re: high angle viewed sprities

Post by Pixel Eater »

A humorous attempt:



They have very flexible torsos :P

Edit: Because that looked so ridiculous here is a request for sprites.
User avatar
Pixel Eater
 
 
Posts: 667
Joined: Wed Aug 02, 2017 12:31 am
Location: In between the Moon and you, between the buried and me.

Re: high angle viewed sprities

Post by Pixel Eater »

Added a code template to the script library: Linky
Hypersonic
Posts: 134
Joined: Mon Aug 14, 2017 3:04 pm

Re: high angle viewed sprities

Post by Hypersonic »

With voxels you can make the monsters/items look exactly as they do now, except instead of just 8 viewpoints you'd have infinite. Too bad voxel models aren't as easy to implement as polygonal models.
User avatar
Enjay
 
 
Posts: 26517
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Re: high angle viewed sprities

Post by Enjay »

Hypersonic wrote:With voxels you can make the monsters/items look exactly as they do now.
Sorry, got to disagree. You might be able to make it look exactly as it does from one angle (e.g. dead front on) but as soon as you move, you'll see the 3D lego-brick nature of the voxel models, especially on shapes with a curve.

Image

In game, their edges are also sharper than the sprites would be in default OpenGL (and so can look very harsh) and they don't seem to alter and blend in the same way with distance as a sprite does.

Image

On top of that, the Doom enemy sprites aren't consistent from one angle to the next, so making a model that looks exactly the same as the sprite from all angles is impossible.

I'm not saying that voxels don't have their place. Even though I really don't like them much at all, I get why people think they tie in well with the pixelly Doom world, but they certainly do not look exactly like sprites.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: high angle viewed sprities

Post by Graf Zahl »

Some people apparently think that everybody is using the software renderer...
Hypersonic
Posts: 134
Joined: Mon Aug 14, 2017 3:04 pm

Re: high angle viewed sprities

Post by Hypersonic »

Look like they do now from the angles given, obviously the hidden sides of 1 angle objects would have to be a reasonable guess at what the original artist intended. Many objects only have 1 angle. Monsters have 8. If the monster artists didn't accurately render each angle to a single common 3D model, I'm sure a voxel model could be made that isn't too far off from any of the angles.

Too bad there's no voxel acceleration like there is texture painted polygonal acceleration. It would be neat to see each of the voxel pixels smoothly blend together like 2D textures do.
User avatar
Chris
Posts: 2940
Joined: Thu Jul 17, 2003 12:07 am
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: high angle viewed sprities

Post by Chris »

Enjay wrote:Sorry, got to disagree. You might be able to make it look exactly as it does from one angle (e.g. dead front on) but as soon as you move, you'll see the 3D lego-brick nature of the voxel models, especially on shapes with a curve.
To be fair, the lego-brick nature of voxel models is just 2D pixelization taken to 3D.

As an aside, there are ways to "smooth out" voxels, with techniques like marching cubes. Rather than just treat each individual voxel as its own little self-contained cube, it tries to connect neighboring voxels together, which helps blend both the color and geometry. Whether or not it would look good, however, is up in the air (I imagine it would be dependent on the particular voxel).

If your goal is to get a good looking 3D object, a proper model would almost certainly be the best option. Although a voxel may understandably be easier to create from a preexisting (static) sprite since you basically stretch the existing 2D image into a 3rd dimension and fill in the necessary gaps. High-end computer graphics have employed similar tricks (take a 2D matte painting and "paste" it onto a 3D backdrop, though it only works for limited movement).
Gez
 
 
Posts: 17833
Joined: Fri Jul 06, 2007 3:22 pm

Re: high angle viewed sprities

Post by Gez »

Graf Zahl wrote:If this was done it would have to be additional rotations that automatically get selected by the renderer. So wait: What letters can we use here? A-G are already taken, that'd leave us with 19 remaining ones, we need 32 to have equivalents for all 16 regular rotations.
I'd use only 18 rotations.
8 for 45° pitch above, 8° for 45° pitch below, and one for top (rotate it with actor angle) and one for bottom (same).

The 16 angle rotations are nearly never used.
Post Reply

Return to “Closed Feature Suggestions [GZDoom]”