Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
RestlessRodent

ChocoRenderLimits Thread

Recommended Posts

Yay, great to see you getting back to CRL. I'll repeat my annoying feature requests then.

Obviously, CRL shouldn't enforce choco's new anti-BtSX limit for lump count per file, heh. Maybe just throw a warning.

And here's a more complex idea: blinking sectors generate fluctuating visplane counts. This means testing a complex scenery that involves blinking requires a lot of standing around and watching them blink from various angles and distances. Is there any way of freezing such an effect in a state that generates the highest visplane count so the tester can do a few laps around it and check all suspect angles before "releasing" it again?

Share this post


Link to post
GhostlyDeath said:

Synchronized To: Chocolate Doom 2.3.0 (SDL2).

2.3.0 isn't based on SDL2.

Share this post


Link to post
fraggle said:

2.3.0 isn't based on SDL2.


I am following the

sdl2-branch
branch and I use whichever version is used there, which is actually 2.3.1, so I corrected it

Share this post


Link to post

Following the short discussion here, I believe it would be nice if the log output that's now handled by pressing F4 was automated. Maybe every new VPO maximum could be stored, so player needs to erase the max if they want new lower peaks logged... or maybe it doesn't have to be a VPO but a configured value. Mappers may want to know when people hit over, say, 120 visplanes, because that means the scenery can contain a spot that will go even higher.

Share this post


Link to post
dew said:

Obviously, CRL shouldn't enforce choco's new anti-BtSX limit for lump count per file, heh. Maybe just throw a warning.


Removed the limitation and just warned instead.

Share this post


Link to post
GhostlyDeath said:

I am following the sdl2-branch branch

Then please just say you are synchronized to sdl2-branch; saying you're synced to 2.3.0 is misleading. The branch has diverged a lot from the master branch used for the current stable releases. Also, there is no 2.3.1, so I'm very confused as to where you're getting that from.

Share this post


Link to post
fraggle said:

Then please just say you are synchronized to sdl2-branch; saying you're synced to 2.3.0 is misleading. The branch has diverged a lot from the master branch used for the current stable releases. Also, there is no 2.3.1, so I'm very confused as to where you're getting that from.


Done

Share this post


Link to post

So I implemented logging, and since I cannot seem to find conduits I just had an option to cut the visplanes to 32 so that it fails on MAP01. The log format is a bit verbose, but it contains a bunch of information such as the player position, angle, game tic, and which visplanes were visible on the screen and their number (along with their properties such as how they were created and the seg/subsector/sector they emit from, if they are floor or ceiling visplanes). So an editor for example could open the CRL log (or maybe someone can write a new utility) which can point to in a way which sectors caused VPOs and from which direction. I am quite busy so maybe someone can write a basic utility in Java or something. But, assuming the map is not modified, from a given point I can imagine that a 3D mode is created which then shows what was captured in the renderer (the player view height) along with rainbowized floors, ceilings, and walls according to the subsector.

Using the much more limited max of 32 visplanes, this is what the log looks like:

Report gt=462
	X x=018cf4d1 f=396.956
	Y x=03fba5c6 f=1019.65
	Z x=005b2a80 f=91.166
	A x=e2400000 f=318.164
	VISCOUNT num=32 chk=9 fnd=23
	VISPLANE num=0 id=0 type=FND seg=38034317 ssub=53 sect=1 what=F
	VISPLANE num=1 id=1 type=FND seg=38034317 ssub=53 sect=1 what=C
	VISPLANE num=2 id=2 type=FND seg=38034317 ssub=47 sect=18 what=F
	VISPLANE num=3 id=3 type=FND seg=38034317 ssub=47 sect=18 what=C
	VISPLANE num=4 id=4 type=FND seg=38034317 ssub=49 sect=19 what=F
	VISPLANE num=5 id=5 type=FND seg=38034317 ssub=49 sect=19 what=C
	VISPLANE num=6 id=6 type=FND seg=38034317 ssub=52 sect=20 what=F
	VISPLANE num=7 id=7 type=FND seg=38034317 ssub=52 sect=20 what=C
	VISPLANE num=8 id=8 type=CHK seg=142 ssub=46 sect=19 what=F
	VISPLANE num=9 id=9 type=CHK seg=137 ssub=44 sect=18 what=F
	VISPLANE num=10 id=10 type=FND seg=38034317 ssub=63 sect=23 what=F
	VISPLANE num=11 id=11 type=FND seg=38034317 ssub=63 sect=23 what=C
	VISPLANE num=12 id=12 type=CHK seg=180 ssub=57 sect=18 what=F
	VISPLANE num=13 id=13 type=CHK seg=199 ssub=67 sect=19 what=F
	VISPLANE num=14 id=14 type=CHK seg=204 ssub=68 sect=18 what=C
	VISPLANE num=15 id=15 type=CHK seg=204 ssub=68 sect=18 what=F
	VISPLANE num=16 id=16 type=FND seg=38034317 ssub=137 sect=36 what=F
	VISPLANE num=17 id=17 type=FND seg=38034317 ssub=137 sect=36 what=C
	VISPLANE num=18 id=18 type=CHK seg=250 ssub=90 sect=23 what=C
	VISPLANE num=19 id=19 type=CHK seg=250 ssub=90 sect=23 what=F
	VISPLANE num=20 id=20 type=CHK seg=251 ssub=91 sect=23 what=F
	VISPLANE num=21 id=21 type=FND seg=38034317 ssub=92 sect=25 what=F
	VISPLANE num=22 id=22 type=FND seg=38034317 ssub=92 sect=25 what=C
	VISPLANE num=23 id=23 type=FND seg=38034317 ssub=97 sect=27 what=C
	VISPLANE num=24 id=24 type=FND seg=38034317 ssub=94 sect=24 what=F
	VISPLANE num=25 id=25 type=FND seg=38034317 ssub=94 sect=24 what=F
	VISPLANE num=26 id=26 type=FND seg=38034317 ssub=96 sect=26 what=F
	VISPLANE num=27 id=27 type=FND seg=38034317 ssub=93 sect=17 what=F
	VISPLANE num=28 id=28 type=FND seg=38034317 ssub=116 sect=31 what=F
	VISPLANE num=29 id=29 type=FND seg=38034317 ssub=114 sect=30 what=F
	VISPLANE num=30 id=30 type=FND seg=38034317 ssub=114 sect=30 what=C
	VISPLANE num=31 id=31 type=FND seg=38034317 ssub=74 sect=14 what=F
On an unrelated note, if you mix tabs and spaces, GCC warns you:
r_plane.c:274:5: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
r_plane.c:278:2: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
But my tab size is 4 and Chocolate Doom uses 4 spaces.

Share this post


Link to post
RestlessRodent said:

On an unrelated note, if you mix tabs and spaces, GCC warns you:

r_plane.c:274:5: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
r_plane.c:278:2: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
But my tab size is 4 and Chocolate Doom uses 4 spaces.



Sometimes I wonder: Is there any warning that's retarded enough for GCC not to implement?

Share this post


Link to post
Graf Zahl said:

Sometimes I wonder: Is there any warning that's retarded enough for GCC not to implement?


I believe Clang implemented it first actually, a number of people I have talked to said they switched to Clang because they had these style warnings, then GCC implemented them also.

However it is annoying when you use -Werror and then these kinds of warnings pop up when you upgrade your GCC version or you compile some really ancient program. Maybe next GCC will detect emacs modelines and check if you are consistently using the right indentation type (tabs vs spaces).

Share this post


Link to post

That's great effort, Ghostly..Rodent! But does the log really dump characteristics of all the visplanes? Wouldn't that look monstrous with the 128 visplanes limit? Probably good for some automated editor interpretation as you say, but maybe some -v flag to turn on the verbose mode would be handy. Mappers mostly get everything they need to know from just the position/direction where to look and all that extra stuff is too technical for casual use.

Share this post


Link to post

Just wanted to say thanks for the effort and work put into this port. It's a godsend for us vanilla stalwarts that has opened a lot of opportunity for enjoying the mapping process and not being inundated with guesswork and annoyances of the engine. :)

Share this post


Link to post
dew said:

But does the log really dump characteristics of all the visplanes?


It does.

dew said:

Wouldn't that look monstrous with the 128 visplanes limit?


It would. I also plan to dump information such as drawsegs and perhaps things too. So that essentially what is printed is a snapshot of what was visible on the screen, technically speaking. Also possibly thought of an automated screenshot which is also stored in the file so one can see what was actually on the screen at the time.

dew said:

Probably good for some automated editor interpretation as you say, but maybe some -v flag to turn on the verbose mode would be handy. Mappers mostly get everything they need to know from just the position/direction where to look and all that extra stuff is too technical for casual use.


I thought about this, but I believe it would be best to keep the information. In a plain text editor, you can just search for "X" for the position and use it that way, or on UNIX there is grep. It would suck if you wanted the details and had to run it twice. So once you learn how to read the details or have a tool, then one would always run with verbose enabled.

My hope is that some kind of automated tool comes into place where some tool or editor can parse the file and shows the information visually. There is time information encoded also and the format is a bit simpler for a computer to parse compared to the previous format (which was kind of ad hoc). I was also thinking of some kind of TCP stream that an editor can receive so it gets a live view of overflows as the player runs around the level.

I would have to poke the developers of the current editors (when I find out who they are) to see if they would be interested in implementing such things.

Use3D said:

Just wanted to say thanks for the effort and work put into this port. It's a godsend for us vanilla stalwarts that has opened a lot of opportunity for enjoying the mapping process and not being inundated with guesswork and annoyances of the engine. :)


Thanks for using it.

dew said:

That's great effort, Ghostly..Rodent!


Thanks.

Share this post


Link to post
Graf Zahl said:

Sometimes I wonder: Is there any warning that's retarded enough for GCC not to implement?

This particular warning is part of a reaction against the goto fail, where code indentation made an extra "goto" statement appear to be inside an if block, when it really wasn't.

When mixing tabs and spaces, there's no way for the compiler to really know how big your tab stops are. Just do all-spaces or all-tabs, don't mix them.

Or I guess you can disable the misleading-indentation warning.

Share this post


Link to post
chungy said:

This particular warning is part of a reaction against the goto fail, where code indentation made an extra "goto" statement appear to be inside an if block, when it really wasn't.


Could have been prevented if sequence points such as logical OR were used, rather than duplicating goto fail like that.

Share this post


Link to post

I implemented a free spectate mode, currently as of this writing you cannot raise or lower your view height. You can use it to look around the level without bringing your clunky human body around. Note that you cannot interact with anything in this mode and your player body is left soulless until you return.

Also made the colors of the visplanes more consistent based on what generated it, when possible. This means that as you walk around, most visplane colors will remain the same (for example, no matter from which angle you are viewing at, the starting alcove in MAP01 is always light green and the dark hallway a dark blue). Note that visplanes do merge, so there is potential for the colors to shift as the viewpoint changes.

This should help a bit.

EDIT: Also added colorblindness simulation (which is probably wrong since it seems the formulas are hard to find).

Share this post


Link to post

The same way like any other Doom source port: Unpack its zip into a new folder and put copies of your IWADs into that folder.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×