Back to Molly Rocket Molly Rocket
Molly Rocket games and everything even tangentially related
 

  FAQFAQ  SearchSearch  UsergroupsUsergroups 
Log inLog in  RegisterRegister
 

Sparse Virtual Texture Presentation

 
Post new topic Reply to topic    Molly Rocket Forum Index -> Sparse Virtual Texturing
View previous topic :: View next topic  
Author Message
sean



Joined: 01 Feb 2005
Posts: 1392
Location: Kirkland WA

PostPosted: Sat Feb 23, 2008 11:43 pm    Post subject: Sparse Virtual Texture Presentation Reply with quote

I've posted a video presentation of the talk and all the source code here.
Back to top
View user's profile Visit poster's website
casey
Site Admin


Joined: 18 Dec 2004
Posts: 1768
Location: Seattle

PostPosted: Sun Feb 24, 2008 1:22 am    Post subject: Reply with quote

So, a quick content-free post: this lecture totally rules. And having the slides running through the system itself was hilariously awesome.

I also thought it was particularly satisfying that your sparse texturing algorithm operates using two hardware MIP levels, and the talk operated using two MIP levels.

- Casey
Back to top
View user's profile Send e-mail Visit poster's website
sean



Joined: 01 Feb 2005
Posts: 1392
Location: Kirkland WA

PostPosted: Sun Feb 24, 2008 1:28 am    Post subject: Reply with quote

casey wrote:
and the talk operated using two MIP levels.


I'm not sure what you mean by that.
Back to top
View user's profile Visit poster's website
casey
Site Admin


Joined: 18 Dec 2004
Posts: 1768
Location: Seattle

PostPosted: Sun Feb 24, 2008 1:40 am    Post subject: Reply with quote

sean wrote:
I'm not sure what you mean by that.

You first gave the detail-free version of the pixel shader and the manager (two pages in your one-reduced MIP). Then you gave the full detail version of them (the same two pages in your full res version).

No?

- Casey
Back to top
View user's profile Send e-mail Visit poster's website
sean



Joined: 01 Feb 2005
Posts: 1392
Location: Kirkland WA

PostPosted: Sun Feb 24, 2008 1:43 am    Post subject: Reply with quote

Hahaha, ok, yes, coarse and then fine. I totally never thought of it that way.

That structure was suggested by Chris Hecker after I rehearsed my first draft and it was shit, not to get a mipmapping effect, but because if I covered ALL the pixel shader stuff first, then ALL the texture management stuff, it was too confusing since people would be wondering about the general stuff for too long, not having a clear picture in their head. At least, I don't think he thought of it as mipmapping.
Back to top
View user's profile Visit poster's website
Won



Joined: 21 Sep 2005
Posts: 506
Location: New York

PostPosted: Sun Feb 24, 2008 7:56 am    Post subject: Reply with quote

Since I haven't said it already, thanks alot for posting this! You have me excited about computer graphics, which hasn't happened to me for a really long time. This is awesome, and I think you should brag more that this was your first pixel shader! Very Happy
Back to top
View user's profile Visit poster's website
jai



Joined: 10 Apr 2007
Posts: 247

PostPosted: Mon Feb 25, 2008 12:21 am    Post subject: Reply with quote

very nice demo. thx.
Back to top
View user's profile
sylefeb



Joined: 28 Feb 2008
Posts: 1

PostPosted: Thu Feb 28, 2008 4:26 pm    Post subject: Some more references Reply with quote

Hi All,

I am also a big fan of this method and I have been working with it quite a lot. I just wanted to point out a few refs which could be useful for those interested in the topic:

The paper which I think introduced the idea (at least this is where I discovered it Wink ):
http://www.vis.uni-stuttgart.de/eng/research/pub/pub2002/hwws02-kraus.pdf
Adaptive Texture Maps., M. Kraus and T. Ertl.

My own work on it:
ftp://ftp.inria.fr/INRIA/publication/publi-pdf/RR/RR-5210.pdf
Unified Texture Management for Arbitrary Meshes, S. Lefebvre, J. Darbon and N. Neyret
=> It is a big aging and many things could be done better now

Work by A.Lefohn on sparse data structures:
http://graphics.cs.ucdavis.edu/research/glift

And also there is a chapter in ShaderX 6 on how to properly deal with filtering issues: "Filtered Tilemaps".

=> I am sure there are many other cool methods out there using this technique. This would be a nice place to try to list them all.

And here is the kind of crazy stuff you end up doing if you push the idea too far Wink

(more at http://www-sop.inria.fr/reves/Basilic/2007/LD07/)
Best,
Sylvain.
Back to top
View user's profile
julian



Joined: 17 Oct 2008
Posts: 38

PostPosted: Fri Oct 17, 2008 5:56 pm    Post subject: Reply with quote

just FYI there is a new paper on the subject that reverences both your works (SVT & UTMfAM):

http://ati.amd.com/developer/SIGGRAPH08/Chapter02-Mittring-Advanced_Virtual_Texture_Topics.pdf
Back to top
View user's profile AIM Address
TomF



Joined: 18 Feb 2007
Posts: 107
Location: Seattle

PostPosted: Fri Oct 17, 2008 10:25 pm    Post subject: Reply with quote

A bit of a shame he dismisses per-mipmap streaming so quickly. His reasons are correct on PC right now (on consoles there's no problem - it works fine) - SetLOD is a disaster in terms of performance, as are Create() and Release(). The obvious answer is to fix SetLOD so it doesn't suck. This isn't actually too difficult, it's just that nobody on the DX/driver side have ever given it any love, so performance sucks, so nobody uses it, so it never gets any love, etc.

You can work around it by having a pool of differently-sized physical textures and you copy the virtual texture into the right-sized physical one. Which is almost what SetLOD does internally, but in a really dumb way that causes GPU pipeline stalls. If you do it in the app you can get much better results (I did this in StarTopia, having discovered that SetLOD was so terrible).

That's obviously a bit of a hassle, but it's surely still less hassle than the full-on SVT? I question whether SVT is worth the effort for most discrete objects (e.g. people, cars, furniture, etc) - really only for landscapes and other significantly big things where part of the object is near the viewer and another part is distant. Of course once you have an SVT method implemented, you could argue you can use it everywhere, but it does still have significant restrictions (multiple layers, CPU cost, etc).

<gripe> No need to make up terms like "indirection textures" and so on. There's a completely standard name for something that caches the translation of a virtual address into a physical address - it's a TLB. </gripe>

He fails to mention prefetching when streaming data from a drive which makes me think he's never actually tried it - it's hugely important. Not that I've ever written about something I haven't actually tried - oh no. I would never do such a thing Smile
Back to top
View user's profile Visit poster's website
AndyFirth



Joined: 06 Sep 2008
Posts: 74
Location: Sammamish, Wa

PostPosted: Sat Oct 18, 2008 12:27 pm    Post subject: Reply with quote

hey Tom... just an FYI... indirect textures wasn't "made up" per se.

its a hardware feature from gamecube.

I used them only for generating menu items (2d, no mip complications) way back when i was optimizing texture space for the peskiest memory hog ps2 games when 300kb could break the bank... i generated them by hand no less too... painstaking for sure... but i got my 300kb back :p

never since until this week when we needed to generate VERY large scale "decals" ala graffiti where the content is largely noise but when you look closer there is something real.

personally i called it indirect texturing within our engine.


Last edited by AndyFirth on Sat Oct 18, 2008 8:16 pm; edited 1 time in total
Back to top
View user's profile
sean



Joined: 01 Feb 2005
Posts: 1392
Location: Kirkland WA

PostPosted: Sat Oct 18, 2008 7:55 pm    Post subject: Reply with quote

TomF wrote:
<gripe> No need to make up terms like "indirection textures" and so on. There's a completely standard name for something that caches the translation of a virtual address into a physical address - it's a TLB. </gripe>


No need to use the wrong term to describe something when the right term already exists. If something stores the translation from a virtual address into a physical address, and it's not a cache, it's a page table.

(There's nothing in the pixel shader path that is 'lookaside'-y.)
Back to top
View user's profile Visit poster's website
MSN



Joined: 22 Oct 2008
Posts: 1

PostPosted: Wed Oct 22, 2008 9:33 pm    Post subject: Reply with quote

julian wrote:
just FYI there is a new paper on the subject that reverences both your works (SVT & UTMfAM):

http://ati.amd.com/developer/SIGGRAPH08/Chapter02-Mittring-Advanced_Virtual_Texture_Topics.pdf


Hey, he references me too!

MSN
Back to top
View user's profile
Display posts from previous:   
Post new topic Reply to topic    Molly Rocket Forum Index -> Sparse Virtual Texturing All times are GMT
Page 1 of 1

 
Jump to:  
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
Molly Rocket topic RSS feed 
Molly Rocket topic RSS feed 
Molly Rocket topic RSS feed, first posts only 


Powered by phpBB © 2001, 2005 phpBB Group