Fill Spectre v3.1

Forum rules
The Projects forums are only for projects. If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.
User avatar
ZZYZX
 
 
Posts: 1384
Joined: Sun Oct 14, 2012 1:43 am
Location: Ukraine
Contact:

Re: Fill Spectre v3.1

Post by ZZYZX »

Apeirogon wrote:I know about consoleplayer. I think about desync.
I mean, if at one computer spectre would have tnt1 sprite, and at other same spectre would have wran sprite, this is cause desynchronization, no!?
I don't think picnum affects RNG in any way (if it's the same state). Unless some playsim code later relies on picnum.
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: Fill Spectre v3.1

Post by Pixel Eater »

Shader adjusted to work with the smaller chroma sprites so multiple Spectres show again.
Overhauled the sprite rotation handling so it works on relative position rather than relative angle.

Unfortunately the smaller sprites and lack of interpolation create a purple border when either the player or Spectre move. I think unless interpolation can be achieved then the larger sprites might have to return, unless there are any ideas?
ZZYZX wrote:I don't think picnum affects RNG in any way (if it's the same state). Unless some playsim code later relies on picnum.
That sounds promising I think :D
Attachments
FillSpectreAlt5.pk3
(163.83 KiB) Downloaded 160 times
User avatar
Apeirogon
Posts: 1605
Joined: Mon Jun 12, 2017 12:57 am

Re: Fill Spectre v3.1

Post by Apeirogon »

Well, desync doesnt happens in multiplayer...because script dont work at all.
Looks like all different data throw away as "error".

But for singleplayer it works.
zscript_alt3_closest_check.txt
(14.8 KiB) Downloaded 134 times
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: Fill Spectre v3.1

Post by Pixel Eater »

I'm trying to get it to work but the further sprites are still purple. Maybe I'm not integrating it correctly? I also tried to test distance with trigonometry but it said GetSpriteIndex wasn't allowed from ui context :(

The .pk3 is getting too large to attach :lol:

Updated the sprite design to be quasi-normal mapped too:
sprite_lut.png
It gives smoothly lensed edges and the ability to make it featureless like The Predator.
User avatar
Apeirogon
Posts: 1605
Joined: Mon Jun 12, 2017 12:57 am

Re: Fill Spectre v3.1

Post by Apeirogon »

Remove " && owner.sprite !=(==) original_sprite_name" strings.

Also, before dividing, check if divisor greater than zero.



Also, zzyzx right and it's like my fault, since after removing "&& owner.sprite !=(==) original_sprite_name" strings monsters in multiplayer begin to change its sprite between "standart" and tnt1.
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: Fill Spectre v3.1

Post by Pixel Eater »

I'm hoping I get a proper chance to try that today or in the next couple of days (going through Hell ATM). I did give it a go already but couldn't give it the attention it deserves :(

Edit: Given some further consideration, I'm not so sure if relying on a single chroma sprite will work. I suspect it will cause distant spectres to show through walls and other closer actors. I'm sorry I even suggested the idea in the first place :oops:

Unless you have any objections I might try concentrating on the version where the rectangular purple outlines became visible only with movement. I think manual interpolation in that version could yield the best results.
User avatar
Gutawer
Posts: 469
Joined: Sat Apr 16, 2016 6:01 am
Preferred Pronouns: She/Her

Re: Fill Spectre v3.1

Post by Gutawer »

Hi, I've just looked over the code for this and I'm very grateful that you're using Gutamatics! With that said, though, I'd like to request that you change your prefix to something other than "gutawer" - this is way too generic and defeats the entire purpose of the prefix system. In retrospect this is kind of on me for not putting in a prefix blacklist to the build system, but I'd just like to request that you change this. The point of the prefix system is to make sure that no mod clashes with each other when using Gutamatics (or any of the libraries I end up releasing with this build system). My recommendation would be something like FSP (for Fill Spectre), but choose whatever you want, so long as its unique to this mod. Thanks.

EDIT: I've added input validation to the Gutamatics build system, so hopefully this sort of issue shouldn't arise again.
User avatar
Apeirogon
Posts: 1605
Joined: Mon Jun 12, 2017 12:57 am

Re: Fill Spectre v3.1

Post by Apeirogon »

For reference, I dont use python to rename it all.
Because after I failed to run it first time, I split on it "with saliva, like split all people before the era of historical materialism" and rename all prefix by hand in notepad.
User avatar
Apeirogon
Posts: 1605
Joined: Mon Jun 12, 2017 12:57 am

Re: Fill Spectre v3.1

Post by Apeirogon »

Unless you have any objections...
While gzdoom cant apply shader to sprite in zscript directly, any objections equals to "stop development and conserve all as is".

I think about "transform" spectre sprite to 2d matrix with 4d elements, which embody (r, g, b, alpha) of sprite in some point of sprite, and then comparing on screen sprite-matix with "stored" sprite-matrix and apply shader if each pixels match.
But that require storing all possible spectre sprites as matrix and not so healthy for cpu.
User avatar
Gutawer
Posts: 469
Joined: Sat Apr 16, 2016 6:01 am
Preferred Pronouns: She/Her

Re: Fill Spectre v3.1

Post by Gutawer »

Apeirogon wrote:For reference, I dont use python to rename it all.
Because after I failed to run it first time, I split on it "with saliva, like split all people before the era of historical materialism" and rename all prefix by hand in notepad.
Did you use Python 3? The build script needs Python 3, that's the only reason I can see that it wouldn't work, it's not doing anything crazy. The build script does specify that you need Python 3. Regardless, it's irrelevant because this isn't about what you used to rename the classes.
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: Fill Spectre v3.1

Post by Pixel Eater »

Thanks for the tip Gutawer :)

If I do a search for the string "gutawer_" and replace it with "FSP_" will that work fine, or is this something more advanced? (I'm lost with all this talk about snakes :P)
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: Fill Spectre v3.1

Post by Pixel Eater »

I think about "transform" spectre sprite to 2d matrix with 4d elements, which embody (r, g, b, alpha) of sprite in some point of sprite, and then comparing on screen sprite-matix with "stored" sprite-matrix and apply shader if each pixels match.
But that require storing all possible spectre sprites as matrix and not so healthy for cpu.
That would be like a facial recognition type of thing? Interesting :o

With all the experiments you're doing I have a prediction that you're gonna find a solution to the sprite-clipping problem :rock:
User avatar
Gutawer
Posts: 469
Joined: Sat Apr 16, 2016 6:01 am
Preferred Pronouns: She/Her

Re: Fill Spectre v3.1

Post by Gutawer »

Pixel Eater wrote:Thanks for the tip Gutawer :)

If I do a search for the string "gutawer_" and replace it with "FSP_" will that work fine, or is this something more advanced? (I'm lost with all this talk about snakes :P)
That should work, yeah.
User avatar
Apeirogon
Posts: 1605
Joined: Mon Jun 12, 2017 12:57 am

Re: Fill Spectre v3.1

Post by Apeirogon »

Gutawer wrote: Did you use Python 3? The build script needs Python 3, that's the only reason I can see that it wouldn't work, it's not doing anything crazy. The build script does specify that you need Python 3. Regardless, it's irrelevant because this isn't about what you used to rename the classes.
Yes, all by instruction.

And I mention it because of this
EDIT: I've added input validation to the Gutamatics build system, so hopefully this sort of issue shouldn't arise again.
User avatar
Apeirogon
Posts: 1605
Joined: Mon Jun 12, 2017 12:57 am

Re: Fill Spectre v3.1

Post by Apeirogon »

Okay, so matrix "way" show me that Im not "the chosen one" and matrix need to wait another neo.
Because this is create too much load on cpu and not practical.

Now I think about fill silhouette of monster sprite with some color, say color of wet ocean wave with jellyfish, and then apply "green screen" shader with this color as "target" for replacing. Gzdoom can do so using setshade function.
Why fill? Because this is give opportunity to change shader target color and spectre color on fly, to avoid applying of shader to non spectre actors.

But it require any way to find out what colors gzdoom already draw on screen, to change spectre and shader "target" color. And I dont know how check it.
Post Reply

Return to “Shaders”