<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3887954092411778669</id><updated>2011-04-21T15:43:24.988-07:00</updated><category term='Update as on March'/><category term='29 2008'/><title type='text'>A Stylized Cartoon Hair Renderer</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mitesh-chitranajan.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mitesh-chitranajan.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mitesh | Chitranjan</name><uri>http://www.blogger.com/profile/05803472200885076695</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3887954092411778669.post-2894749320067142526</id><published>2008-05-09T13:55:00.000-07:00</published><updated>2008-05-09T14:50:45.187-07:00</updated><title type='text'>Sorting Issue........</title><content type='html'>We initially studied the Bitonic sort for our application and had plans to implement the same. But eventually could do away with it by using glDepthMask since we where using CUDA in contrast to Cg which is used by the author as mentioned in the paper.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3887954092411778669-2894749320067142526?l=mitesh-chitranajan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitesh-chitranajan.blogspot.com/feeds/2894749320067142526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3887954092411778669&amp;postID=2894749320067142526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/2894749320067142526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/2894749320067142526'/><link rel='alternate' type='text/html' href='http://mitesh-chitranajan.blogspot.com/2008/05/sorting-issue.html' title='Sorting Issue........'/><author><name>Mitesh | Chitranjan</name><uri>http://www.blogger.com/profile/05803472200885076695</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3887954092411778669.post-6181110059612337304</id><published>2008-05-09T13:12:00.000-07:00</published><updated>2008-05-09T13:13:57.497-07:00</updated><title type='text'>Filtering Issue</title><content type='html'>We used the Sobel edge detection filter to generate the required silhouette. We used Cg to implement Sobel filter rather than using CUDA. We are using glPoints to draw the hair strands and the size of these points depends on the size specified using glPointSize. Thus it is difficult to estimate the area around the points. Also, OpenGL does not provide for a functionality wherein you could read the RGB values of a pixel, thus making it difficult to implement the filter in CUDA since we would be required to map the pixels. On the other hand by using Cg you just need to write the OpenGL output to the fragment shader where you will have a texture which is not required to be mapped and thus the Sobel masks can be directly applied to this texture.&lt;br /&gt;&lt;br /&gt;We would have faced similar problem while applying any other filter such as DOG in CUDA. Since Sobel edge detection filter did not give very convincing result for our application, we had planned to implement the LOG filter which might have given better results. But due to time constraints we could not eventually do so.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3887954092411778669-6181110059612337304?l=mitesh-chitranajan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitesh-chitranajan.blogspot.com/feeds/6181110059612337304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3887954092411778669&amp;postID=6181110059612337304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/6181110059612337304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/6181110059612337304'/><link rel='alternate' type='text/html' href='http://mitesh-chitranajan.blogspot.com/2008/05/filtering-issue.html' title='Filtering Issue'/><author><name>Mitesh | Chitranjan</name><uri>http://www.blogger.com/profile/05803472200885076695</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3887954092411778669.post-1657754565329796864</id><published>2008-05-09T12:55:00.000-07:00</published><updated>2008-05-09T14:52:38.343-07:00</updated><title type='text'>Implementation issues</title><content type='html'>We had certain issues with the paper especially regarding the diffuse shading and specular highlights. The paper had no information regarding the ambient light(or that is what we presume they use) that they use to illuminate the inside part of the hair. We just added a small amount of ambient light and converted the negative light intensity to positive.&lt;br /&gt;&lt;br /&gt;We faced a couple of problems in implementing the specular highlights as well. First of all enough information was not given on how the points that make up the triangle strip are generated from the group of points. At one point they say they use a user defined distance value between points and at another time they talk about specular threshold value. We solved this problem by using the first group of sequential points having specular values higher than user specified threshold. We then simply take their average. Instead of building a triangle strip we build a quad using the first two points from the first two strands and the last two points from the last two strands. This gave us our second problem: squishing of the texture. Since the texture was drawn in full resolution of 512 * 512 when we map it to a quad on the hair the texture gets compressed loses its shape and looks only like a white strip. Lastly we seem to be having one vertex of the quad strip sometimes at the origin thereby causing distortion. We did not really get the time to identify or solve this issue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3887954092411778669-1657754565329796864?l=mitesh-chitranajan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitesh-chitranajan.blogspot.com/feeds/1657754565329796864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3887954092411778669&amp;postID=1657754565329796864' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/1657754565329796864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/1657754565329796864'/><link rel='alternate' type='text/html' href='http://mitesh-chitranajan.blogspot.com/2008/05/implementation-issues.html' title='Implementation issues'/><author><name>Mitesh | Chitranjan</name><uri>http://www.blogger.com/profile/05803472200885076695</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3887954092411778669.post-3143306473691875217</id><published>2008-05-09T11:54:00.000-07:00</published><updated>2008-12-10T02:59:37.063-08:00</updated><title type='text'>Final Output and few implementation issues......</title><content type='html'>At last we are done with the project and the final result was good. They are quite close to the output achieved by the author in the paper. We would have liked more time to implement certain things like different types of specular highlights and to make it more user interactive. But overall we are satisfied with the result.&lt;br /&gt;&lt;br /&gt;Their result:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="MARGIN: 0px auto 10px; CURSOR: hand; DISPLAY: block; TEXT-ALIGN: center" id="BLOGGER_PHOTO_ID_5198489718165924914" border="0" alt="" src="http://2.bp.blogspot.com/_8xv6KAkglbY/SCS-2xvM7DI/AAAAAAAAABk/I_Oq3GDkDv4/s400/hair.jpg" /&gt;&lt;br /&gt;Our Result:&lt;a href="http://2.bp.blogspot.com/_8xv6KAkglbY/SCS-BxvM7CI/AAAAAAAAABc/zYvyRmKi9fI/s1600-h/hair3.bmp"&gt;&lt;img style="MARGIN: 0px auto 10px; CURSOR: hand; DISPLAY: block; TEXT-ALIGN: center" id="BLOGGER_PHOTO_ID_5198488807632858146" border="0" alt="" src="http://2.bp.blogspot.com/_8xv6KAkglbY/SCS-BxvM7CI/AAAAAAAAABc/zYvyRmKi9fI/s400/hair3.bmp" width="319" height="344" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_8xv6KAkglbY/SCS8-BvM7BI/AAAAAAAAABU/GR2uwKKEcVo/s1600-h/hair6.bmp"&gt;&lt;img style="MARGIN: 0px auto 10px; CURSOR: hand; DISPLAY: block; TEXT-ALIGN: center" id="BLOGGER_PHOTO_ID_5198487643696720914" border="0" alt="" src="http://3.bp.blogspot.com/_8xv6KAkglbY/SCS8-BvM7BI/AAAAAAAAABU/GR2uwKKEcVo/s400/hair6.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3887954092411778669-3143306473691875217?l=mitesh-chitranajan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitesh-chitranajan.blogspot.com/feeds/3143306473691875217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3887954092411778669&amp;postID=3143306473691875217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/3143306473691875217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/3143306473691875217'/><link rel='alternate' type='text/html' href='http://mitesh-chitranajan.blogspot.com/2008/05/final-output-and-few-implementation.html' title='Final Output and few implementation issues......'/><author><name>Mitesh | Chitranjan</name><uri>http://www.blogger.com/profile/05803472200885076695</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_8xv6KAkglbY/SCS-2xvM7DI/AAAAAAAAABk/I_Oq3GDkDv4/s72-c/hair.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3887954092411778669.post-5646829011072169561</id><published>2008-05-04T20:03:00.000-07:00</published><updated>2008-05-04T20:04:27.248-07:00</updated><title type='text'></title><content type='html'>So... I have done the specular highlight part of the project which came as a surprise to me.The method is very much different from the blinn model or how I had thought it to be.Since I'm running short on time I'll just demo the output tomorrow.&lt;br /&gt;cheers&lt;br /&gt;chitranjan&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3887954092411778669-5646829011072169561?l=mitesh-chitranajan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitesh-chitranajan.blogspot.com/feeds/5646829011072169561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3887954092411778669&amp;postID=5646829011072169561' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/5646829011072169561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/5646829011072169561'/><link rel='alternate' type='text/html' href='http://mitesh-chitranajan.blogspot.com/2008/05/so.html' title=''/><author><name>Mitesh | Chitranjan</name><uri>http://www.blogger.com/profile/05803472200885076695</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3887954092411778669.post-4415260358447123180</id><published>2008-05-02T21:26:00.001-07:00</published><updated>2008-05-02T21:28:57.968-07:00</updated><title type='text'></title><content type='html'>Ok..so while Mitesh had been working on the diffuse shading for the hair I concentrated on the specular part of the hair.In the original paper specular highlights was done entirely on cpu.I have been able to parallelize that to some extent but due to the data dependency it cannot be fully parallelized.I have understood how the algorithm for specular works for this model and will publish the results soon.&lt;br /&gt;-chitranjan&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3887954092411778669-4415260358447123180?l=mitesh-chitranajan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitesh-chitranajan.blogspot.com/feeds/4415260358447123180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3887954092411778669&amp;postID=4415260358447123180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/4415260358447123180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/4415260358447123180'/><link rel='alternate' type='text/html' href='http://mitesh-chitranajan.blogspot.com/2008/05/ok.html' title=''/><author><name>Mitesh | Chitranjan</name><uri>http://www.blogger.com/profile/05803472200885076695</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3887954092411778669.post-5372386358998237337</id><published>2008-04-21T14:57:00.000-07:00</published><updated>2008-12-10T02:59:37.218-08:00</updated><title type='text'></title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_8xv6KAkglbY/SA0OAfDAglI/AAAAAAAAAAs/eTZFfcBOKnI/s1600-h/Anime_Hair.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5191821346924954194" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_8xv6KAkglbY/SA0OAfDAglI/AAAAAAAAAAs/eTZFfcBOKnI/s320/Anime_Hair.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Output with diffuse and specular shading.....still need to work on specular shading......&lt;/div&gt;&lt;div&gt;-Mitesh&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3887954092411778669-5372386358998237337?l=mitesh-chitranajan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitesh-chitranajan.blogspot.com/feeds/5372386358998237337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3887954092411778669&amp;postID=5372386358998237337' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/5372386358998237337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/5372386358998237337'/><link rel='alternate' type='text/html' href='http://mitesh-chitranajan.blogspot.com/2008/04/output-with-diffuse-and-specular.html' title=''/><author><name>Mitesh | Chitranjan</name><uri>http://www.blogger.com/profile/05803472200885076695</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_8xv6KAkglbY/SA0OAfDAglI/AAAAAAAAAAs/eTZFfcBOKnI/s72-c/Anime_Hair.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3887954092411778669.post-5541245986784253095</id><published>2008-04-19T13:19:00.001-07:00</published><updated>2008-12-10T02:59:37.451-08:00</updated><title type='text'>Silhouette for the hair model</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_8xv6KAkglbY/SApUlfDAgkI/AAAAAAAAAAk/bFJHgbT37go/s1600-h/hair.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5191054523463926338" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_8xv6KAkglbY/SApUlfDAgkI/AAAAAAAAAAk/bFJHgbT37go/s320/hair.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Soo...I have integrated the two parts 1)cuda for hair creation and rendering 2)cg shaders for the edge detection giving the silhouette.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Note:-we were considering implementing the bitonic sort for sorting the hair strands.But it seems that enabling the depth test has solved the problem.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;-Chitranjan&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3887954092411778669-5541245986784253095?l=mitesh-chitranajan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitesh-chitranajan.blogspot.com/feeds/5541245986784253095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3887954092411778669&amp;postID=5541245986784253095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/5541245986784253095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/5541245986784253095'/><link rel='alternate' type='text/html' href='http://mitesh-chitranajan.blogspot.com/2008/04/silhouette-for-hair-model.html' title='Silhouette for the hair model'/><author><name>Mitesh | Chitranjan</name><uri>http://www.blogger.com/profile/05803472200885076695</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_8xv6KAkglbY/SApUlfDAgkI/AAAAAAAAAAk/bFJHgbT37go/s72-c/hair.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3887954092411778669.post-1602665353367381371</id><published>2008-04-18T22:45:00.000-07:00</published><updated>2008-12-10T02:59:37.610-08:00</updated><title type='text'></title><content type='html'>&lt;div align="center"&gt;&lt;a href="http://3.bp.blogspot.com/_8xv6KAkglbY/SAmHeuABFwI/AAAAAAAAAAc/NszaUCxZJgo/s1600-h/Hair.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5190829007335134978" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_8xv6KAkglbY/SAmHeuABFwI/AAAAAAAAAAc/NszaUCxZJgo/s320/Hair.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="left"&gt;Rendering hair using different interpolation points has been done successfully. Currently working on diffuse and specular shading....&lt;/div&gt;&lt;div align="left"&gt;-Mitesh&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3887954092411778669-1602665353367381371?l=mitesh-chitranajan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitesh-chitranajan.blogspot.com/feeds/1602665353367381371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3887954092411778669&amp;postID=1602665353367381371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/1602665353367381371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/1602665353367381371'/><link rel='alternate' type='text/html' href='http://mitesh-chitranajan.blogspot.com/2008/04/rendering-hair-using-different.html' title=''/><author><name>Mitesh | Chitranjan</name><uri>http://www.blogger.com/profile/05803472200885076695</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_8xv6KAkglbY/SAmHeuABFwI/AAAAAAAAAAc/NszaUCxZJgo/s72-c/Hair.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3887954092411778669.post-2511617573434510486</id><published>2008-04-17T20:19:00.000-07:00</published><updated>2008-12-10T02:59:37.784-08:00</updated><title type='text'>Sobel Edge detection for Sihouette</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_8xv6KAkglbY/SAgUl-ABFvI/AAAAAAAAAAU/dToAo53hIs0/s1600-h/sobel.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5190421213075281650" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 236px; CURSOR: hand; HEIGHT: 240px" height="240" alt="" src="http://3.bp.blogspot.com/_8xv6KAkglbY/SAgUl-ABFvI/AAAAAAAAAAU/dToAo53hIs0/s320/sobel.JPG" width="150" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Sooo... I have been able to apply the sobel filter to our output.Thanks to the reflections assignment :).I tweaked a readily available sobel filter shader for getting the output as desired by us.I have also tested it with alpha blended output.This means that we can now render our hair output directly to the display and sobel output to a quad and then align the two to get the desired looking result.Also attaching the output of sobel with alpha blending.The image has turned out to be poor in quality but you can see the outline of the sphere below the green sphere.It looks proper on a computer display.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;-Chitranjan&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3887954092411778669-2511617573434510486?l=mitesh-chitranajan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitesh-chitranajan.blogspot.com/feeds/2511617573434510486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3887954092411778669&amp;postID=2511617573434510486' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/2511617573434510486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/2511617573434510486'/><link rel='alternate' type='text/html' href='http://mitesh-chitranajan.blogspot.com/2008/04/sobel-edge-detection-for-sihouette.html' title='Sobel Edge detection for Sihouette'/><author><name>Mitesh | Chitranjan</name><uri>http://www.blogger.com/profile/05803472200885076695</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_8xv6KAkglbY/SAgUl-ABFvI/AAAAAAAAAAU/dToAo53hIs0/s72-c/sobel.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3887954092411778669.post-5006060330492827530</id><published>2008-04-17T20:09:00.000-07:00</published><updated>2008-04-17T20:19:12.979-07:00</updated><title type='text'>Multiple Hair Creation</title><content type='html'>Sooo.. I have created the interpolation points for multiple hair strands. This is done in parallel using Cuda.So we consider a sphere as our head and our hair strands are to be rendered 360 degrees around the sphere.It was just a matter of fixing a single hair strand and then rotating it around the sphere using the y-axis rotation matrix.For the sake of simplicity and ease everything happens around the origin of the axis.These interpolation points will be handled by the Mitesh's catmul-rom implementation.&lt;br /&gt;-Chitranjan&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3887954092411778669-5006060330492827530?l=mitesh-chitranajan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitesh-chitranajan.blogspot.com/feeds/5006060330492827530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3887954092411778669&amp;postID=5006060330492827530' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/5006060330492827530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/5006060330492827530'/><link rel='alternate' type='text/html' href='http://mitesh-chitranajan.blogspot.com/2008/04/multiple-hair-creation.html' title='Multiple Hair Creation'/><author><name>Mitesh | Chitranjan</name><uri>http://www.blogger.com/profile/05803472200885076695</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3887954092411778669.post-388325768118545217</id><published>2008-04-07T12:31:00.000-07:00</published><updated>2008-04-17T20:26:59.471-07:00</updated><title type='text'>Catmull-Rom implementation</title><content type='html'>Implementation of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Catmull&lt;/span&gt;-Rom was successful. We tried &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;parallelizing the implementation as much as possible. Our main aim was to parallelize the time step function which would take maximum time as it calculates the curve point at various interval. Also the calculation of these points between different interpolation points have been implemented in parallel.&lt;br /&gt;&lt;br /&gt;Currently we are trying to implement the Bitonic Sort for sorting the hair strands. We are having few difficulties in its implementation, more so with the actual working of the algorithm. We hope to solve this problem soon.&lt;br /&gt;-Mitesh&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3887954092411778669-388325768118545217?l=mitesh-chitranajan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitesh-chitranajan.blogspot.com/feeds/388325768118545217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3887954092411778669&amp;postID=388325768118545217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/388325768118545217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/388325768118545217'/><link rel='alternate' type='text/html' href='http://mitesh-chitranajan.blogspot.com/2008/04/catmull-rom-implementation.html' title='Catmull-Rom implementation'/><author><name>Mitesh | Chitranjan</name><uri>http://www.blogger.com/profile/05803472200885076695</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3887954092411778669.post-383004465427365580</id><published>2008-03-20T19:32:00.000-07:00</published><updated>2008-12-10T02:59:38.107-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Update as on March'/><category scheme='http://www.blogger.com/atom/ns#' term='29 2008'/><title type='text'>A Stylized Cartoon Hair Renderer</title><content type='html'>After pondering over a couple of topics we have finally decided to implement a paper presented in SIGGRAPH 06 ("&lt;a href="http://portal.acm.org/citation.cfm?id=1178823.1178899"&gt;A Stylized Cartoon Hair Renderer&lt;/a&gt;"). It deals with a novel hair rendering technique for &lt;a href="http://en.wikipedia.org/wiki/Anime"&gt;anime&lt;/a&gt; characters. The idea is to model hair strands having way fewer particles then normally used in animation today. It involves making a Catmul-Rom Spline, making hair patches in the form of billboard particles and giving them the hair strand shape. Then applying the Sobel filter on it to render the silhouette. This is followed by diffuse shading and then specular shading in order to apply shading to the hair strands.&lt;br /&gt;&lt;br /&gt;We are planning to program it using C++, OpenGL and Cg. There is a small doubt in our mind whether it is possible to to make use of CUDA as well as Cg together and whether it will suit our requirement. We will    figure out something and start working on the  project soon.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We have now started working on the initial tasks. Mitesh is working drawing a &lt;span&gt;catmul rom spline &lt;/span&gt;given a fixed number of points. The idea is to have a couple of points joined together based on a cubic bezier curve.This will give us the foundation for the hair strand.&lt;br /&gt;&lt;br /&gt;In parallel   I(Chitranjan) have started working on making and rendering &lt;span&gt;billboard particles&lt;/span&gt; out of the hair strand particles. The points that make up the catmul-rom spline are considered as the center points of the billboard particles. In the paper they explained it as sending a texture coordinate along with the coordinates of the catmul-rom particle. This part is still unclear to me and I need to ponder over it for some time.&lt;br /&gt;&lt;br /&gt;Ok....So I(Chitranjan) have been able to render the single strand of hair. I found the GL_POINTS to be the right implementation for the purpose.I just considered a vertical strand of hair and then resized the particles as specified by the algorithm.What remains now is to fetch the coordinates of the catmul-rom spline and render points at those positions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_8xv6KAkglbY/R-6DAYgGfKI/AAAAAAAAAAM/FSZ5eThqrWI/s1600-h/hairstrand.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_8xv6KAkglbY/R-6DAYgGfKI/AAAAAAAAAAM/FSZ5eThqrWI/s320/hairstrand.jpg" alt="" id="BLOGGER_PHOTO_ID_5183224263750352034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We intend to calculate the catmul splines using cuda.We may also do the resizing using cuda itself.Attaching the screenshot of the hair strand.A better shaped hair strand can easily be obtained by tweaking different parameters.&lt;br /&gt;&lt;br /&gt;I will now start working on the next step which is sorting of hair strands and which is a very important part of the algorithm.This will decide the rendering order of the billboards.It is very important to solve the depth issues and the root of the hair strand plays an important role in this.The sorting is to be done according to the distance from the eye position to the root position of the hair strand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3887954092411778669-383004465427365580?l=mitesh-chitranajan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mitesh-chitranajan.blogspot.com/feeds/383004465427365580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3887954092411778669&amp;postID=383004465427365580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/383004465427365580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3887954092411778669/posts/default/383004465427365580'/><link rel='alternate' type='text/html' href='http://mitesh-chitranajan.blogspot.com/2008/03/stylized-cartoon-hair-renderer.html' title='A Stylized Cartoon Hair Renderer'/><author><name>Mitesh | Chitranjan</name><uri>http://www.blogger.com/profile/05803472200885076695</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_8xv6KAkglbY/R-6DAYgGfKI/AAAAAAAAAAM/FSZ5eThqrWI/s72-c/hairstrand.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
