Doom Comic
Register | User Profile | Member List | F.A.Q | Privacy Policy | New Blog | Search Forums | Forums Home
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Doom Editing > Visplane Explorer : new 0.80 version
Pages (3): « 1 [2] 3 »  
Author
All times are GMT. The time now is 15:58. Post New Thread    Post A Reply
ReX
Senior Member


Posts: 1743
Registered: 05-00


Is it possible to know precisely where a visplane overflow will occur and to highlight the most likely culprits? I have a map for vanilla Doom that has been crashing (running chocolate-doom) with visplane errors, and I have been systematically trimming the areas that I believe are causing the problem. I ran Visplane Explorer and looked at the results, but am no closer to definitively knowing if the error remains and what the source of the error is.

Old Post 06-07-12 02:12 #
ReX is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
andrewj
Senior Member


Posts: 1606
Registered: 04-02


Areas that definitely overflow show up in red, otherwise the brighter shades of brown have the most visplanes.

I suggest not merely trying to get rid of red areas, but have a "safety buffer" of say 10 or 20 planes below the limit.

Windows are often bad for visplane counts, it can double the number of visplanes (the current room + the nearby room). Making them high enough so the player cannot see any floors through the window helps (but of course that usually ruins the effect).

You can also add "fences", a 64 unit high (or so) sector which the player cannot get on and which blocks the view of the floors in a large room, especially at the highest parts of a room.

Stairs can be bad too -- you can make bigger steps or replace them with a lift.

Lighting gradients (the same sector textures and heights, but only difference is the light levels) also increase visplane counts.

Hope that helps

Old Post 06-07-12 03:42 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
esselfortium
A Major Doomworld Concern


Posts: 6410
Registered: 01-02



ReX said:
Is it possible to know precisely where a visplane overflow will occur and to highlight the most likely culprits? I have a map for vanilla Doom that has been crashing (running chocolate-doom) with visplane errors, and I have been systematically trimming the areas that I believe are causing the problem. I ran Visplane Explorer and looked at the results, but am no closer to definitively knowing if the error remains and what the source of the error is.

Have you tried running Chocorenderlimits? It'll show you the visplane counts (among other things) for your current position at any given time, so you can get a clearer idea of what exactly will trigger it. It can also outline each individual plane, so you can see where they're concentrated.

Old Post 06-07-12 05:41 #
esselfortium is online now Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
ReX
Senior Member


Posts: 1743
Registered: 05-00



andrewj said:
Areas that definitely overflow show up in red, otherwise the brighter shades of brown have the most visplanes.

I suggest not merely trying to get rid of red areas, but have a "safety buffer" of say 10 or 20 planes below the limit.

My map has no red areas, and I had figured out that the lighter the brown, the greater the number of visplanes. What I'm experiencing is a visplane overflow only around a narrow range of coordinates, when looking in a particular direction. I had figured this out the hard way (i.e., moving around each possible area of the map to see if the game would crash) even before I discovered Visplane Explorer. I was curious to know if the utility could include a flag that indicates that a visplane overflow will occur (or at least the probability of one), and from what coordinates.


esselfortium said:

Have you tried running Chocorenderlimits? It'll show you the visplane counts (among other things) for your current position at any given time, so you can get a clearer idea of what exactly will trigger it. It can also outline each individual plane, so you can see where they're concentrated.

I'll be sure to give it a shot. I believe this may be what I was asking andrewj above. Thanks.

Old Post 06-07-12 13:02 #
ReX is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
andrewj
Senior Member


Posts: 1606
Registered: 04-02


Yeah Chocorenderlimits will let you try certain spots and angles better, Visplane Explorer only tests 8 view angles (the major compass directions) so potentially misses some overflows.

V.E. also doesn't open doors, raise stairs or lower floors, and that can increase the visplanes (very significantly in some maps).

Old Post 06-07-12 14:02 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
ducon
Régulier du Forum


Posts: 1288
Registered: 12-03


The Linux version crashes (segfault) with Deus Vult’s map05.

__________________
A shell, an imp.

Old Post 12-23-12 20:30 #
ducon is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Egregor
Junior Member


Posts: 167
Registered: 11-12


So, I need some really basic help using this program:

A: When I load a map into VE on its own I get a blank map. White boarders, black and blue background. I don't get any analysis. Changing the settings shows no visual map change. How do I get it to render information?

B: How, in very lamen terms, do I load VE into DB2? I've got no idea. DB2 doesn't currently display a VE button option.

Old Post 12-24-12 00:43 #
Egregor is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
andrewj
Senior Member


Posts: 1606
Registered: 04-02



ducon said:
The Linux version crashes (segfault) with Deus Vult’s map05.

That map will crash DOOM too.

Visplane Explorer assumes the map works in DOOM.EXE


Egregor wrote:
When I load a map into VE on its own I get a blank map.


Press TAB to toggle analysis mode (I know, should be a gui button)

Also make sure the map is DOOM format -- VE does not support Hexen format maps (or UDMF).

Note too that the DB2 plugin is a separate thing, I suggest doing a search on the DB2 forums for it.

Old Post 12-24-12 00:51 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
esselfortium
A Major Doomworld Concern


Posts: 6410
Registered: 01-02


Would it be possible to add a mode that somehow visually displays seg splits from the most recent node build?

Old Post 12-24-12 00:53 #
esselfortium is online now Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
andrewj
Senior Member


Posts: 1606
Registered: 04-02



esselfortium said:
Would it be possible to add a mode that somehow visually displays seg splits from the most recent node build?

Should be quite easy.

hi ho, hi ho, it's off to work I go..... (been meaning to give this program some tlc)

Old Post 12-24-12 00:59 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
Egregor
Junior Member


Posts: 167
Registered: 11-12


oh, TAB, heh, right . . . I knew that. It works, thanks. I think I thought I pressed tab before but I really pressed Caps Lock. Somethings wrong with me :P

Old Post 12-24-12 01:06 #
Egregor is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
traversd
Member


Posts: 640
Registered: 01-09



andrewj said:

Should be quite easy.

hi ho, hi ho, it's off to work I go..... (been meaning to give this program some tlc)



Awesome!

Old Post 12-24-12 01:56 #
traversd is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Kappes Buur
Forum Regular


Posts: 798
Registered: 11-02



Egregor said:
So, I need some really basic help using this program:
.......
B: How, in very lamen terms, do I load VE into DB2? I've got no idea. DB2 doesn't currently display a VE button option.


Then you are not using the latest SVN version.
eg. since r1599 it is a plugin

Clicking on the VE icon

http://i.imgur.com/tGaBL.png


shows all visplanes and brings up a sub icon to select different modes

http://i.imgur.com/hbhlO.png

Last edited by Kappes Buur on 12-25-12 at 18:48

Old Post 12-24-12 03:24 #
Kappes Buur is offline Profile || Blog || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Xaser
Forum Staple


Posts: 2533
Registered: 07-03



esselfortium said:
Would it be possible to add a mode that somehow visually displays seg splits from the most recent node build?

I hate to be "that assface who bumps for a re-request", but I just found myself wishing for the same thing a few seconds ago. Though chocorenderlimits has a mode to view visplanes, there's nothing at all that shows exactly where the segs are split, which I think would be a super-useful thing when trying to optimize limit-pushing scenes (like I finding myself doing right now... and every time I work on a vanilla map :P ).

Semi-tangent, but IMO, segs have always been a bigger problem than visplanes since the latter can be avoided pretty easily if you know what you're doing. Segs, though... well, that pretty much limits the size of anything you work on, and i can't resist pushing the damn limit until it bends up to breaking. :P

And now, we randomly return you to your regularly scheduled topic.

Old Post 02-03-13 20:27 #
Xaser is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
andrewj
Senior Member


Posts: 1606
Registered: 04-02



Xaser said:

I hate to be "that assface who bumps for a re-request", but I just found myself wishing for the same thing a few seconds ago. Though chocorenderlimits has a mode to view visplanes, there's nothing at all that shows exactly where the segs are split, which I think would be a super-useful thing when trying to optimize limit-pushing scenes (like I finding myself doing right now... and every time I work on a vanilla map :P ).


Nothing wrong with asking for something :)

OK I just implemented it, please try this unofficial test binary:
http://oblige.sourceforge.net/files...7test-win32.zip

Old Post 02-04-13 00:24 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
traversd
Member


Posts: 640
Registered: 01-09


\o/

Old Post 02-04-13 05:47 #
traversd is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Xaser
Forum Staple


Posts: 2533
Registered: 07-03


Well damn! That was quick. :)

That definitely helps -- I actually managed to oust some overflows already with it. Thanks for seeing to it, sir. :D

Old Post 02-04-13 05:53 #
Xaser is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
andrewj
Senior Member


Posts: 1606
Registered: 04-02


Very easy feature to add -- I'm glad it is useful to someone.

Old Post 02-04-13 11:33 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
traversd
Member


Posts: 640
Registered: 01-09


Would a sub-sector view also be possible/useful? To see where the seg splits relate to or am I misunderstanding the seg splits again? Can you have a subsector on one side of a 2-sided linedef that uses a seg split and another on the other side that doesn't?

Certainly, just the seg splits shows just how much overhead some small detailing can contribute to a scene.

Old Post 02-11-13 10:16 #
traversd is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
andrewj
Senior Member


Posts: 1606
Registered: 04-02


Yes you can have a seg split on only one side of a linedef, though it will be a lot rarer than both sides being split (since it can only happen when that linedef sits along a partition line).

I don't plan to add any subsector or node view to Visplane Explorer, that would be better done by a node viewing program (or a DB2 plugin).

Old Post 02-12-13 02:42 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
traversd
Member


Posts: 640
Registered: 01-09


No worries. Thanks for what you have done already :0)

Old Post 02-12-13 05:47 #
traversd is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
esselfortium
A Major Doomworld Concern


Posts: 6410
Registered: 01-02


Question: What actually are solidsegs? The Doom Wiki says they're the same as Openings, but I don't think that's true.

Old Post 02-16-13 06:33 #
esselfortium is online now Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
andrewj
Senior Member


Posts: 1606
Registered: 04-02



esselfortium said:
Question: What actually are solidsegs? The Doom Wiki says they're the same as Openings, but I don't think that's true.

Solidsegs are not the same as openings.

Solidsegs are for clipping, they remember a horizontal range on the screen (e.g. from pixel 20 to pixel 100 on the 320 pixel wide screen) where a completely solid (one sided) wall has been drawn. Nothing further needs to be drawn in those pixel columns, so subsequent walls are clipped (horizontally) to those ranges.

You could overflow the limit by creating a room with a row of 40 16x16 pillars, where the player can see them all at once. This overflow is not detected by vanilla DOOM engine, so it would corrupt memory and possibly crash.

P.S.
http://oblige.sourceforge.net/shots/solidsegs.jpg

Last edited by andrewj on 02-16-13 at 07:00

Old Post 02-16-13 06:45 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
esselfortium
A Major Doomworld Concern


Posts: 6410
Registered: 01-02


I see... Thanks for that!

Old Post 02-16-13 07:08 #
esselfortium is online now Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
_bruce_
Senior Member


Posts: 1208
Registered: 11-07


andrewj, could you spill a little bit more info on openings?

Old Post 02-16-13 18:27 #
_bruce_ is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
andrewj
Senior Member


Posts: 1606
Registered: 04-02


Heh ok.

Openings are strongly related to drawsegs.

Drawsegs remember an on-screen position of a draw seg (wall section). They are remembered for two reasons: (1) for sprite clipping -- because sprites are handled at the end once all the walls and floors are drawn, and (2) for drawing mid-masked textures -- also done at the end.

Each drawseg needs to remember the "opening" for each column of the screen they are on (a top and a bottom pixel coordinate) and these are stored in the openings array. The openings array also stores for some mid-masked texture stuff.

Openings rarely come close to overflowing, and then only when visplanes or drawsegs are excessively above their limits, e.g. ten times the limit -- that's why I removed the display of openings from Visplane Explorer.

Old Post 02-17-13 00:57 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
_bruce_
Senior Member


Posts: 1208
Registered: 11-07



andrewj said:
Heh ok.

Openings are strongly related to drawsegs.

Drawsegs remember an on-screen position of a draw seg (wall section). They are remembered for two reasons: (1) for sprite clipping -- because sprites are handled at the end once all the walls and floors are drawn, and (2) for drawing mid-masked textures -- also done at the end.

Each drawseg needs to remember the "opening" for each column of the screen they are on (a top and a bottom pixel coordinate) and these are stored in the openings array. The openings array also stores for some mid-masked texture stuff.

Openings rarely come close to overflowing, and then only when visplanes or drawsegs are excessively above their limits, e.g. ten times the limit -- that's why I removed the display of openings from Visplane Explorer.



Big thanks!

Old Post 02-17-13 12:14 #
_bruce_ is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit/Delete || Quote
CodeImp
Moderator


Posts: 1501
Registered: 12-03


Here is a plugin that allows you to see subsectors, segs and splits (nodes) that the nodebuilder created:
http://www.doombuilder.com/plugins/nodesviewer.zip

Source code for the plugin is in the Doom Builder repository, or here.

http://www.codeimp.com/temp/nodesviewer.png

Old Post 02-17-13 17:10 #
CodeImp is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
esselfortium
A Major Doomworld Concern


Posts: 6410
Registered: 01-02


Holy cantaloupe, Batman!

Old Post 02-17-13 17:23 #
esselfortium is online now Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Xaser
Forum Staple


Posts: 2533
Registered: 07-03


The plugin is reeeally cool, but only when it seems to work. Larger maps (I think?) are causing an unhandled exception ("Index was out of range") when trying to fire up the viewer.

As a quick test, trying to run it on Back to Saturn X E1 MAP01 will cause the exception.

[EDIT] Just got word that a new version went up that should fix the crashing. I can't seem to trigger it again -- thanks for the quick fix!

[DOUBLE-EDIT] Hey guys, is this vanilla-compatible?

Last edited by Xaser on 02-17-13 at 20:06

Old Post 02-17-13 17:43 #
Xaser is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
All times are GMT. The time now is 15:58. Post New Thread    Post A Reply
Pages (3): « 1 [2] 3 »  
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Doom Editing > Visplane Explorer : new 0.80 version

Show Printable Version | Email this Page | Subscribe to this Thread

 

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are OFF
[IMG] code is ON
 

< Contact Us - Doomworld >

Powered by: vBulletin Version 2.2.5
Copyright ©2000, 2001, Jelsoft Enterprises Limited.

Message Board Statistics