<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style>
<!--
@font-face
        {font-family:Wingdings}
@font-face
        {font-family:Wingdings}
@font-face
        {font-family:Calibri}
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif"}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline}
span.EmailStyle17
        {font-family:"Calibri","sans-serif";
        color:windowtext}
.MsoChpDefault
        {font-family:"Calibri","sans-serif"}
@page WordSection1
        {margin:70.85pt 70.85pt 70.85pt 70.85pt}
div.WordSection1
        {}
ol
        {margin-bottom:0cm}
ul
        {margin-bottom:0cm}
-->
</style>
</head>
<body lang="NL" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi,</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span lang="EN-US">I was thinking of a way to circumvent the 100 texture limit imposed by Cuda, by automatically merging same-sized textures into a texture atlas. In the post
<a href="http://blenderartists.org/forum/showthread.php?309902-Suggestion-for-workaround-for-cycles-texture-limit">
http://blenderartists.org/forum/showthread.php?309902-Suggestion-for-workaround-for-cycles-texture-limit</a> at blenderartists I posed the Idea, but I think this mailinglist is a better place for this kind of discussion.</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">I’ve taken a look into the code concerning image textures, but I don’t know enough about the design of the cycles renderer to figure out the whole approach. Also, I have some concerns about whether this proposed approach
is actually going to work. So I hope you guys might be able to help me answering that.</span></p>
<p class="MsoNormal"><span lang="EN-US">Here is (copied from my blenderartists post) the state of my idea:</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><b><span style="font-size:12.0pt; font-family:"Times New Roman","serif"">Requirements for the solution</span></b><span style="font-size:12.0pt; font-family:"Times New Roman","serif""></span></p>
<ul type="disc">
<li class="MsoNormal" style=""><span lang="EN-US" style="font-size:12.0pt; font-family:"Times New Roman","serif"">amount of textures should not be the limit, only the size of your graphics memory</span></li><li class="MsoNormal" style=""><span lang="EN-US" style="font-size:12.0pt; font-family:"Times New Roman","serif"">typical UV tricks that are supported now (tiling textures, textures outside of [0,1] range) should be still supported</span></li><li class="MsoNormal" style=""><span lang="EN-US" style="font-size:12.0pt; font-family:"Times New Roman","serif"">solution should be transparent (invisible) to the user</span></li></ul>
<p class="MsoNormal" style=""><b><span lang="EN-US" style="font-size:12.0pt; font-family:"Times New Roman","serif"">Suggested approach</span></b><span lang="EN-US" style="font-size:12.0pt; font-family:"Times New Roman","serif""></span></p>
<ul type="disc">
<li class="MsoNormal" style=""><span lang="EN-US" style="font-size:12.0pt; font-family:"Times New Roman","serif"">before rendering starts, textures which have the same size and pixel-type are grouped together in an atlas.</span></li><li class="MsoNormal" style=""><span lang="EN-US" style="font-size:12.0pt; font-family:"Times New Roman","serif"">The concerned image nodes are notified that they have to re-map to an area of that atlas.</span></li><li class="MsoNormal" style=""><span lang="EN-US" style="font-size:12.0pt; font-family:"Times New Roman","serif"">When a node has to sample the texture, it will use the remapping info to sample the right area. border-cases should be handled correctly.</span></li><li class="MsoNormal" style=""><span lang="EN-US" style="font-size:12.0pt; font-family:"Times New Roman","serif"">When rendering a movie, the same atlas can be re-used for rendering the whole movie in this way.</span></li></ul>
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt; font-family:"Times New Roman","serif"">Areas of concern</span></b><span style="font-size:12.0pt; font-family:"Times New Roman","serif""></span></p>
<ul type="disc">
<li class="MsoNormal" style=""><span lang="EN-US" style="font-size:12.0pt; font-family:"Times New Roman","serif"">The design of the node system will probably get more complicated: some manager needs to manage all the texture nodes</span></li><li class="MsoNormal" style=""><span lang="EN-US" style="font-size:12.0pt; font-family:"Times New Roman","serif"">performance - the re-mapping is not a difficult calculation, but will happen a lot (every time that one of the textures is sampled) so the code
needs to be written with care</span></li><li class="MsoNormal" style=""><span lang="EN-US" style="font-size:12.0pt; font-family:"Times New Roman","serif"">limits - is there a limit to the texture sizes?</span></li><li class="MsoNormal" style=""><span lang="EN-US" style="font-size:12.0pt; font-family:"Times New Roman","serif"">Graphics pipeline features - does the cuda code use typical graphics-hardware features like mipmapping or texture border handling, which could
be messed up when playing with the sampling coordinates?</span></li></ul>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt; color:#C00000">Jonatan Bijl</span></b></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt; color:gray">Software Developer / 3D artist</span><span lang="EN-US" style="font-size:10.0pt"></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt; color:#C00000">T</span><span lang="EN-US" style="font-size:10.0pt; color:red">
</span><span lang="EN-US" style="font-size:10.0pt; color:gray">+31 15 251 5669</span><span lang="EN-US" style="font-size:10.0pt"></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt; color:#C00000">M</span><span lang="EN-US" style="font-size:10.0pt; color:#1F497D">
</span><span lang="EN-US" style="font-size:10.0pt; color:gray">+31 6 4493 4295</span><span lang="EN-US" style="font-size:10.0pt"></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt; color:#C00000">E</span><span lang="EN-US" style="font-size:10.0pt; color:#1F497D">
</span><u><span lang="EN-US" style="font-size:10.0pt; color:blue">jonatan.bijl@tba.nl</span></u><span lang="EN-US" style="font-size:10.0pt"></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt; color:#C00000">S </span><span lang="EN-US" style="font-size:10.0pt; color:gray">jonim8or</span><span lang="EN-US" style="font-size:10.0pt; color:#1F497D"></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt"> </span></p>
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt; color:gray">TBA</span></b><span lang="EN-US" style="font-size:10.0pt"></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt; color:gray">Karrepad 2a</span><span lang="EN-US" style="font-size:10.0pt"></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt; color:gray">2623AP Delft,
</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt; color:gray">The Netherlands</span><span lang="EN-US" style="font-size:10.0pt"></span></p>
<p class="MsoNormal"><u><span lang="EN-US" style="font-size:10.0pt; color:blue"><a href="http://www.tba.nl/"><span style="color:blue">www.tba.nl</span></a></span></u><u><span style="font-family:"Times New Roman","serif"; color:blue"></span></u></p>
<p class="MsoNormal"> </p>
</div>
------------------------------------------------------------- This e-mail is intended exclusively for the addressee. If you are not the addressee you must not read, copy, use or disclose the e-mail nor the content; please notify us immediately [by clicking
'Reply'] and delete this e-mail.
</body>
</html>