Re: Texture mip streaming prioritization

Krzysztof Narkowicz <[email protected]> Mon, 22 Jul 2013 23:26:27 +0200
Newsgroups gmane.games.devel.algorithms
Message-ID <CAMcWT_h_UBDmxf-HGoH_ah1Nhcpa587JazA9LngUssG10tOowA@mail.gmail.com>
--===============3823170987956153519==
Content-Type: multipart/alternative; boundary=089e013cc63e47fa6004e2205493

--089e013cc63e47fa6004e2205493
Content-Type: text/plain; charset=ISO-8859-1

Hi,

A good solution would be just to precompute some data. For example camera
is at point X - what should I load. Alternatively - object X is Y meters
from camera - what should I load. Without precomputation it's hard to know
what will be needed in nearest time. Current frame usually doesn't contain
enough information.

BTW isn't loading single mip-maps too fine grained, at least from seek time
perspective? Most popular solutions are based on two states - ~64x64 thumb
/ full texture.

-- 
Krzysztof Narkowicz


On Mon, Jul 22, 2013 at 9:16 AM, Josh Green <[email protected]> wrote:

> Hi There,
>
> I'm currently working on a texture streaming system and looking into ways
> to prioritize which mips on which textures should be loaded.
> I was hoping that people on this list may have experience with these
> algorithms that they could share?
>
> Currently I know which mips need to be loaded in order to render a scene
> without degradation in image quality.
> I would now like to apply a memory budget to textures, and make decisions
> about which mips of which textures should be loaded over others.
>
> My current line of thinking involves comparing cost / benefit of loading
> each individual mip.
> i.e.
>
> How many pixels would be affected by a particular mip level being loaded
> versus how much memory would that mip level use?
>
> This becomes Priority = Benefit / Cost
>
> I'd then sort for highest priority and assign memory budget to those mips
> at the top of the list.
>
> Any thoughts? comments? Alternatives that work better? Alternatives that
> have worked enough?
>
> Problems that arise with the above algorithm are quite broad, and in
> particular, optimising the tipping point between cost and benifit would be
> necessary. Also, calculating the number of pixels affected would involve
> crude calculations that aren't really going to affect real world values....
>
> Thanks all for your thoughts!
>
> Josh
>
>
> ------------------------------------------------------------------------------
> See everything from the browser to the database with AppDynamics
> Get end-to-end visibility with application monitoring from AppDynamics
> Isolate bottlenecks and diagnose root cause in seconds.
> Start your free trial of AppDynamics Pro today!
> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
> _______________________________________________
> GDAlgorithms-list mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list
> Archives:
> http://sourceforge.net/mailarchive/forum.php?forum_name=gdalgorithms-list
>

--089e013cc63e47fa6004e2205493
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi,<div><br></div><div>A good solution would be just to pr=
ecompute some data. For example camera is at point X - what should I load. =
Alternatively - object X is Y meters from camera - what should I load. With=
out precomputation it&#39;s hard to know what will be needed in nearest tim=
e. Current frame usually doesn&#39;t contain enough information.</div>
<div><br></div><div>BTW isn&#39;t loading single mip-maps too fine grained,=
 at least from seek time perspective? Most popular solutions are based on t=
wo states - ~64x64 thumb / full texture.</div><div><br></div><div>--=A0</di=
v>
<div>Krzysztof Narkowicz</div></div><div class=3D"gmail_extra"><br><br><div=
 class=3D"gmail_quote">On Mon, Jul 22, 2013 at 9:16 AM, Josh Green <span di=
r=3D"ltr">&lt;<a href=3D"mailto:[email protected]" target=3D"_blank">inbill=
[email protected]</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div dir=3D"ltr">Hi There,<br><br>I&#39;m cu=
rrently working on a texture streaming system and looking into ways to prio=
ritize which mips on which textures should be loaded.<div>
I was hoping that people on this list may have experience with these algori=
thms that they could share?<br>
<br>Currently I know which mips need to be loaded in order to render a scen=
e without degradation in image quality.<br>I would now like to apply a memo=
ry budget to textures, and make decisions about which mips of which texture=
s should be loaded over others.=A0<br>

<br>My current line of thinking involves comparing cost / benefit of loadin=
g each individual mip.<br>i.e.<br><br>How many pixels would be affected by =
a particular mip level being loaded versus how much memory would that mip l=
evel use?<br>

<br>This becomes Priority =3D Benefit / Cost<br><br>I&#39;d then sort for h=
ighest priority and assign memory budget to those mips at the top of the li=
st.<br><br>Any thoughts? comments? Alternatives that work better? Alternati=
ves that have worked enough?</div>

<div><br></div><div>Problems that arise with the above algorithm are quite =
broad, and in particular, optimising the tipping point between cost and ben=
ifit would be necessary. Also, calculating the number of pixels affected wo=
uld involve crude calculations that aren&#39;t really going to affect real =
world values....<br>

<br>Thanks all for your thoughts!<span class=3D"HOEnZb"><font color=3D"#888=
888"><br><br>Josh</font></span></div></div>
<br>-----------------------------------------------------------------------=
-------<br>
See everything from the browser to the database with AppDynamics<br>
Get end-to-end visibility with application monitoring from AppDynamics<br>
Isolate bottlenecks and diagnose root cause in seconds.<br>
Start your free trial of AppDynamics Pro today!<br>
<a href=3D"http://pubads.g.doubleclick.net/gampad/clk?id=3D48808831&amp;iu=
=3D/4140/ostg.clktrk" target=3D"_blank">http://pubads.g.doubleclick.net/gam=
pad/clk?id=3D48808831&amp;iu=3D/4140/ostg.clktrk</a><br>___________________=
____________________________<br>

GDAlgorithms-list mailing list<br>
<a href=3D"mailto:[email protected]">GDAlgorithms-lis=
[email protected]</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list" =
target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/gdalgorithms=
-list</a><br>
Archives:<br>
<a href=3D"http://sourceforge.net/mailarchive/forum.php?forum_name=3Dgdalgo=
rithms-list" target=3D"_blank">http://sourceforge.net/mailarchive/forum.php=
?forum_name=3Dgdalgorithms-list</a><br></blockquote></div><br></div>

--089e013cc63e47fa6004e2205493--


--===============3823170987956153519==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
--===============3823170987956153519==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
GDAlgorithms-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list
Archives:
http://sourceforge.net/mailarchive/forum.php?forum_name=gdalgorithms-list
--===============3823170987956153519==--