[ARCHIVE] SimAntics & World Development

Status
Not open for further replies.
One of the robot job lots (shows working diagonal walls)
10802.png

It looks like the data for tiles split on diagonal walls is actually stored with the wall itself instead of with the floor data, which is sort of weird. I'm not sure where to render it in this case, but I guess drawing it with the wall couldn't hurt.
 
The draw order is out a bit - Right now the walls seem to be drawing after the static objects so any alpha on the static objects is cutting through the wall. Right now the shader does this:

IF alpha > 0 && IF DEPTH <= existing depth DRAW...

What it should ideally do is:

If old alpha < alpha, ignore depth test result and draw regardless

So that when the z sort fails (closer drawn before further) anti-aliased objects don't have a "halo" of sorts, and instead cut off like aa was disabled. Unfortunately I do not think this is possible. When z sorting is added to the object layers most of the problems should be mitigated, however all sprites would have to be drawn separately and it could all end in a performance disaster.
 
upload_2014-4-8_15-23-19.png
3/4 tile splits are working, the remaining one is left side vertical split, which makes no sense whatsoever (none of the included values include the relevant tile information!)
 
Rotation is almost working perfectly. There are a few things left to fix with walls, but apart from that all 4 rotations work and the z buffers are correct on them.
 
Rotation working great now, committed all wall and rotation code to the repo so those of you that can compile can test it for yourself.

In the meantime, intel cards have a really interesting reaction to the depth restore shader:
upload_2014-4-9_1-1-15.png
I'll need to look into this, since a large portion of our userbase will be using intel integrated graphics. Good news: performance isn't any slower on intel (sprite drawing lag is all cpu it seems)
 
Fixed things for intel cards. I'm going to look into rendering with multiple render targets so that I can avoid generating and sending the sprites to the gfx card 2x. Hopefully since this is a standard DX9 feature all relevant hardware should support it.
 
Performance is insane using multiple render target (>60 fps scroll)! Hopefully this works on intel...
 
Status
Not open for further replies.
Back
Top