For your bounding circles do you plan to just circumscribe the bounded geometry for a cheap radial test?
» Forum
> Your Projects
elfprince13 wrote:
For your bounding circles do you plan to just circumscribe the bounded geometry for a cheap radial test?
Yes, exactly.
benryves wrote:
elfprince13 wrote:
For your bounding circles do you plan to just circumscribe the bounded geometry for a cheap radial test?
Yes, exactly.
I'm not sure where there is any precision to lose. The bounding circle would be applied to BSP nodes. Each BSP node describes a set of geometry made up of all the geometry of its children (so the root node describes the entire map, its two child nodes describe roughly half of the map each, their four children describe a quarter of the map each etc). If I check a node and see that it's outside the viewport I can instantly discard it (and by extension all of its children).
The trick is making sure that the per-node boundary check is efficient enough to pay for itself; it adds a bit of overhead for each node. My initial tests with an AABB halved the framerate. A circle should be easier to check, at least.
Of course, working out the bounding circle for each node should be an interesting problem in its own right!
Edit: By way of example, here's the new "statistics" screen:
When looking at the bird bath thing the frame rate is > 30FPS, as we are only visiting 7 BSP nodes, drawing 2 sub-sectors and 8 walls (only four of which are actually drawn, the others are culled). When I look towards the hole in the wall the frame rate drops to 15FPS as we are visiting 113 BSP nodes, drawing 56 sub-sectors and 139 walls, only 16 of which are actually anywhere near the screen.
The trick is making sure that the per-node boundary check is efficient enough to pay for itself; it adds a bit of overhead for each node. My initial tests with an AABB halved the framerate. A circle should be easier to check, at least.
Of course, working out the bounding circle for each node should be an interesting problem in its own right!
Edit: By way of example, here's the new "statistics" screen:
When looking at the bird bath thing the frame rate is > 30FPS, as we are only visiting 7 BSP nodes, drawing 2 sub-sectors and 8 walls (only four of which are actually drawn, the others are culled). When I look towards the hole in the wall the frame rate drops to 15FPS as we are visiting 113 BSP nodes, drawing 56 sub-sectors and 139 walls, only 16 of which are actually anywhere near the screen.
I've made some attempts to optimise the engine; only one (caching projected vertices) has been successful. I have, however, enlarged the level to the full 256 walls.
More information can be found on the post on my website, along with a demo and an animated screenshot.
More information can be found on the post on my website, along with a demo and an animated screenshot.
Yup, I enjoyed the update on your website, as always. I've been wondering about one of your sprites for a while - is that indeed a Calculator Cup or something similar?
Thank you. The old MaxCoderz forum rewarded posting with coins, which could then be spent on items in a shop. For the fifth anniversary of MaxCoderz a special trophy was made available for a week, and buying this would also let you download a special program developed by tr1p1ea in celebration of the 5 years. You can find more information about this in the relevant forum thread.
MaxCoderz didn't have an identifiable logo, which is something I discussed with tr1p1ea on IRC and then on MaxCoderz. In the thread I toyed with the idea of merging a trophy and a calculator ("Max"Coderz implying the best, at least in name, so an award seemed a good fit for a logo).
We never came to any agreement over a logo, so remain unadorned MaxCoderz for the time being, but I thought this project would be a good place to resurrect the sprite.
In researching this I've come to the realisation that MaxCoderz are 10 years old next year. Blimey.
MaxCoderz didn't have an identifiable logo, which is something I discussed with tr1p1ea on IRC and then on MaxCoderz. In the thread I toyed with the idea of merging a trophy and a calculator ("Max"Coderz implying the best, at least in name, so an award seemed a good fit for a logo).
We never came to any agreement over a logo, so remain unadorned MaxCoderz for the time being, but I thought this project would be a good place to resurrect the sprite.
In researching this I've come to the realisation that MaxCoderz are 10 years old next year. Blimey.
Ah yes, I remember the coin system! It was quite a good idea, in my opinion; I should really consider something like that here. I agree that an identifiable logo is important to establish an identity for a site. And nice on the ten years; Cemetech is just about ten or eleven years old at this point, although I need to double-check the exact date when it turned from C-Tech in my imagination into Cemetech on the web. Anywho, I'm taking this offtopic.
benryves wrote:
Of course, working out the bounding circle for each node should be an interesting problem in its own right!
but pre-computed I should hope?
elfprince13 wrote:
benryves wrote:
Of course, working out the bounding circle for each node should be an interesting problem in its own right!
but pre-computed I should hope?
Yes, it was. It didn't really help, though; it was faster to walk down a few extra nodes than it was to check each bounding circle!
One thing I didn't try was to only use the bounding circle around the convex sub-sectors only. It may be worth trying again, as this may be a faster way to discard sub-sectors consisting of more than one wall (currently each wall is checked in turn).
A potential visibility set for each BSP node may also help. If I break the level down into eight regions I could assign each node with one byte that flags which regions are contained within that node and another byte that flags which regions are potentially visible from that node. This data could be used to prune the BSP tree quite heavily, but I'm not sure if it would really help as the renderer stops when every column in the screen has been completed, which is likely to be before any of the definitely invisible (as opposed to the potentially visible) regions is visited.
One thing I didn't try was to only use the bounding circle around the convex sub-sectors only. It may be worth trying again, as this may be a faster way to discard sub-sectors consisting of more than one wall (currently each wall is checked in turn).
A potential visibility set for each BSP node may also help. If I break the level down into eight regions I could assign each node with one byte that flags which regions are contained within that node and another byte that flags which regions are potentially visible from that node. This data could be used to prune the BSP tree quite heavily, but I'm not sure if it would really help as the renderer stops when every column in the screen has been completed, which is likely to be before any of the definitely invisible (as opposed to the potentially visible) regions is visited.
All I can say is that i'm speechless -- this is so amazing! keep up the great work dude, this is by far the best 3D game/engine/anthing else 3D I've ever seen!
ASHBAD_ALVIN wrote:
All I can say is that i'm speechless -- this is so amazing! keep up the great work dude, this is by far the best 3D game/engine/anthing else 3D I've ever seen!
Haha, in terms of the ratio of results to platform capabilities, I'd definitely have to agree with you on that.
Thank you very much. qarnos was also working on a BSP-based 3D engine with full 6DOF, but his was more of an "outdoor" rather than "indoor" engine. You can read more about it on MaxCoderz: Aether 3D (it sadly looks like the GIFs have been replaced with PNGs, so they no longer animate). The demos are still available, at least!
Sorry, I missed that post. I posted a link to a picture of the map with each BSP node's bounding circle drawn on top into #cemetech, though no longer have the URL. It was a few minutes of work to add the code to generate an image, and has been handy for debugging. I recently modified it to output a visualisation of the BSP tree, where the pale lines indicate the partitions. It helped spot a few places where I'd made a mistake in the tree (non-axis-aligned partitions are expressed as a gradient and a Y or X intercept, which I had previously been calculating by hand).
Looking at that picture again, I'm puzzled by that horizontal partition at the very bottom of the picture. There's no geometry on the bottom side of it, so why is it there? Looks like another mistake to fix.
elfprince13 wrote:
I must have missed that?
Sorry, I missed that post. I posted a link to a picture of the map with each BSP node's bounding circle drawn on top into #cemetech, though no longer have the URL. It was a few minutes of work to add the code to generate an image, and has been handy for debugging. I recently modified it to output a visualisation of the BSP tree, where the pale lines indicate the partitions. It helped spot a few places where I'd made a mistake in the tree (non-axis-aligned partitions are expressed as a gradient and a Y or X intercept, which I had previously been calculating by hand).
Looking at that picture again, I'm puzzled by that horizontal partition at the very bottom of the picture. There's no geometry on the bottom side of it, so why is it there? Looks like another mistake to fix.
Those Aether 3D screenshots look tantalizing, although I'm very disappointed that all of the animation is gone. I would have loved to see some action. I assume that some kind of TI-89-style space shooter was his immediate goal from looking at some of those?
Going by the names of ships and space stations he was going for something more like Elite, which was a space trading game.
merthsoft wrote:
I love trading space.
All right, settle down, Mr. Grammar. Let's keep this on-topic and non-trololsome. merthsoft wrote:
I love trading space.
That's the name of the game genre, and it's not even one of the silliest.
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.
» Go to Registration page
» Go to Registration page
» Goto page Previous 1, 2, 3, 4, 5 Next
» View previous topic :: View next topic
» View previous topic :: View next topic
Page 4 of 5
» All times are UTC - 5 Hours
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Advertisement