<?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-2334675698092448253</id><updated>2011-07-28T11:04:07.579-07:00</updated><category term='Hydrax+Caelum'/><category term='Hydrax'/><category term='Shadow'/><category term='Terrain'/><category term='Ogre'/><category term='acadamic'/><category term='Ocean'/><category term='CG'/><category term='OpenGL'/><title type='text'>BinBin's Welkin</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://binbinwelkin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2334675698092448253/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://binbinwelkin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Little Bin</name><uri>http://www.blogger.com/profile/02261602051302990969</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_ph5a48Ppxk0/SKwo0G8QtqI/AAAAAAAAACo/xJ9AAjY4suU/S220/IMG_1712.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2334675698092448253.post-625196723925305360</id><published>2009-04-14T06:40:00.000-07:00</published><updated>2009-04-14T07:47:05.165-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ogre'/><category scheme='http://www.blogger.com/atom/ns#' term='Hydrax+Caelum'/><title type='text'>Hydrax + Caelum</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ph5a48Ppxk0/SeShTfMxEcI/AAAAAAAAAL4/yueiy6ORvFE/s1600-h/problem1ey7.png"&gt;&lt;/a&gt;&lt;div&gt;&lt;div&gt;I have integrated the Hydrax 0.5 and Caelum 0.4 in my project.  Thanks for &lt;a href="http://www.ogre3d.org/addonforums/viewforum.php?f=20&amp;amp;sid=e88ee565a4c010dc0d5ebb6d1401a49f"&gt;Xavyiy&lt;/a&gt; and &lt;a href="http://www.ogre3d.org/addonforums/viewforum.php?f=21&amp;amp;sid=e88ee565a4c010dc0d5ebb6d1401a49f"&gt;Cdleonard&lt;/a&gt;'s great work. And the topic &lt;a href="http://www.ogre3d.org/addonforums/viewtopic.php?f=20&amp;amp;t=8458"&gt;HOW TO: Integrate Hydrax V0.4 with Caemum&lt;/a&gt; in Ogre forum also give me a great favor.&lt;/div&gt;&lt;div&gt;First some screen shot of my recenly work. All of them are rendered by OpenGL and CG. Some detail information can be found in my previous post.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;img src="http://3.bp.blogspot.com/_ph5a48Ppxk0/SeSfuWoremI/AAAAAAAAALo/m8dac0Wkazk/s400/screenshot_2.png" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 320px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5324556278157769314" /&gt;&lt;img src="http://4.bp.blogspot.com/_ph5a48Ppxk0/SeSfkQ6Qm-I/AAAAAAAAALg/fmbVfLIW45s/s400/screenshot_1.png" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 320px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5324556104822201314" /&gt;&lt;img src="http://4.bp.blogspot.com/_ph5a48Ppxk0/SeSf2N-NIOI/AAAAAAAAALw/xymliyOH2Xc/s400/screenshot_10.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5324556413271089378" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 320px; " /&gt;&lt;div&gt;Except for the problems metioned in forum topic, I also solved some new problems&lt;/div&gt;&lt;div&gt;1. I found PointStarFiled can not reflect on ocean surface. This problem can be solved by changing material &lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;StarPoint&lt;/span&gt;'s atrribute &lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;cull_hardwar&lt;/span&gt; as &lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;none&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;material Caelum/StarPoint&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;...........................&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;            // Works with default culling:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;            cull_hardware clockwise&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;            &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;...........................&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;2. I'm very pleased with the visual effect of Hydrax. However, using Hydrax has been a very large perfomance hit for us.  I test the project grid with perlin noise. I found noise calculation is the bottleneck of the CPU. So I excute &lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;void Perlin::_calculeNoise()&lt;/span&gt; in another thread. The modification is very small, only take care about memory protection is enough.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. The water doesn't follow the camera expecially when rotate the camera horizontally, see the screeshot as example. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;img src="http://1.bp.blogspot.com/_ph5a48Ppxk0/SeShTfMxEcI/AAAAAAAAAL4/yueiy6ORvFE/s400/problem1ey7.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5324558015623401922" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;The project grid's lagging can be solved by streching the projected water area. The project area is determinde by four conner point, so the code is changed as red color shows:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;bool ProjectedGrid::_renderGeometry(const Ogre::Matrix4&amp;amp; m,const Ogre::Matrix4&amp;amp; _viewMat, const Ogre::Vector3&amp;amp; WorldPos)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;t_corners0 = _calculeWorldPosition(Ogre::Vector2( 0.0f, 0.0f),m,_viewMat);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;t_corners1 = _calculeWorldPosition(Ogre::Vector2(+1.0f, 0.0f),m,_viewMat);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;t_corners2 = _calculeWorldPosition(Ogre::Vector2(&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;-0.2f&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;,+1.0f),m,_viewMat);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;t_corners3 = _calculeWorldPosition(Ogre::Vector2(&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;+1.2f&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;,+1.0f),m,_viewMat);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;                ........................&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;       }&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&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/2334675698092448253-625196723925305360?l=binbinwelkin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://binbinwelkin.blogspot.com/feeds/625196723925305360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binbinwelkin.blogspot.com/2009/04/hydrax-caelum.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2334675698092448253/posts/default/625196723925305360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2334675698092448253/posts/default/625196723925305360'/><link rel='alternate' type='text/html' href='http://binbinwelkin.blogspot.com/2009/04/hydrax-caelum.html' title='Hydrax + Caelum'/><author><name>Little Bin</name><uri>http://www.blogger.com/profile/02261602051302990969</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_ph5a48Ppxk0/SKwo0G8QtqI/AAAAAAAAACo/xJ9AAjY4suU/S220/IMG_1712.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ph5a48Ppxk0/SeSfuWoremI/AAAAAAAAALo/m8dac0Wkazk/s72-c/screenshot_2.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2334675698092448253.post-3099086736805934742</id><published>2009-04-08T06:30:00.000-07:00</published><updated>2009-04-08T07:31:16.105-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ocean'/><category scheme='http://www.blogger.com/atom/ns#' term='CG'/><category scheme='http://www.blogger.com/atom/ns#' term='Ogre'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='Hydrax'/><title type='text'>Hydrax ---- OpenGL Version</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ph5a48Ppxk0/Sdy0vGpNTkI/AAAAAAAAALY/bNDlBM65NXE/s1600-h/screenshot_3.png"&gt;&lt;/a&gt;       Hydrax is an excellent Ocean Addons for Ogre. Now, I want to make use of it in my project. Thanks for Xavyiy's great work. Download link at: &lt;a href="http://www.ogre3d.org/wiki/index.php/Hydrax"&gt;http://www.ogre3d.org/wiki/index.php/Hydrax&lt;/a&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        Although, Xavyiy has written all shaders for HLSL and CG, there're still some artifacts, when run the executable file directly in OpenGL Mode. These days, I made some modification to run Hydrax in OpenGL properly. The modification can be summarized as follow:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;1.  Fresnel Texture&lt;/div&gt;&lt;div&gt;        When run in OpenGL mode, there're some mistake for CG reading 1d texture"Fresnel.bmp" for WaterMaterial and UnderWaterMaterial. The ocean surface looks like with no correct normals as Fig.1. This problem can be fixed by hardly change the "Fresnel.bmp" as a 2d texture, with size of 256x1. Result can be see in Fig.2.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://3.bp.blogspot.com/_ph5a48Ppxk0/SdyrxJXofWI/AAAAAAAAAKY/zjIu7h03uQM/s320/screenshot_1.png" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 256px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5322317720462064994" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Fig1. Ocean Surface with wrong normal vectors.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;               &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://1.bp.blogspot.com/_ph5a48Ppxk0/SdyzT1EnYuI/AAAAAAAAALQ/dbI56TC6Cwg/s320/screenshot_1.png" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 256px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5322326012890407650" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Fig2. Ocean Surface with correct normal vectors.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;2.  UnderWaterMaterial's ScaleMat&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;        When  the viewpoint stays under water, the underwarter reflect shows wrong &lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;reflect direction, as Fig.3. I changed the ScaleMat in UnderWaterMaterial as :&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;ScaleMat = float4x4(&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0.5,&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;0,&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;0,&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;0.5,&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;             &lt;/span&gt;      &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0,&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;0.5,&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;0, &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;0.5,&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;             &lt;/span&gt;       0,&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;0,&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;0.5,&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;0.5,&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;             &lt;/span&gt;       0,&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;0,&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;0,&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;1);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://1.bp.blogspot.com/_ph5a48Ppxk0/SdyteY2VfNI/AAAAAAAAAKo/KuyO7rhX5Zw/s320/screenshot_3.png" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 256px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5322319597223115986" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Fig3. Wrong reflection direction under water.      &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;                      &lt;/span&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;img src="http://4.bp.blogspot.com/_ph5a48Ppxk0/Sdy0vGpNTkI/AAAAAAAAALY/bNDlBM65NXE/s320/screenshot_3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5322327580975386178" style="float: left; margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 0px; cursor: pointer; width: 320px; height: 256px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Fig4. Correct &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;reflection direction under water.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;3.  RTT Error for DepthCompositor&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;  &lt;/span&gt;     &lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;I found when the viewpoint moves under the horizon, there're many RTT textures&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;were created and destroyed every frame. The FPS droped heavely. Just comment the following code in Hydrax::setWaterColor(const Ogre::Vector3 &amp;amp;WaterColor) can solve the problem. The RTT texture will only create once when move under horizon.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;       &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;if (getHeigth(mCamera-&gt;getDerivedPosition()) &gt; mCamera-&gt;getDerivedPosition().y-1.25f)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;           &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;if (mMaterialManager-&gt;isCompositorEnable(MaterialManager::COMP_UNDERWATER))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;           &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;               &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;mMaterialManager-&gt;setCompositorEnable(MaterialManager::COMP_UNDERWATER, false);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;mMaterialManager-&gt;setCompositorEnable(MaterialManager::COMP_UNDERWATER, true);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 102, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;        Finally, give some screen shot for my OpenGL version Hydrax effect. Next few days, I'll combin Hydrax with Caelum together.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;img src="http://1.bp.blogspot.com/_ph5a48Ppxk0/SdyvnVwJAnI/AAAAAAAAAK4/ejFP6MZTZX4/s400/screenshot_0.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5322321950033904242" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 320px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;span class="Apple-style-span"  style="font-size:small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Fig5. Ocean surface effect for OpenGL version Hydrax.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;img src="http://3.bp.blogspot.com/_ph5a48Ppxk0/Sdyv7VLjlsI/AAAAAAAAALA/Hy0CNOvIxpw/s400/screenshot_4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5322322293477840578" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 320px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;     &lt;/span&gt;  &lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Fig6. Under water effect for OpenGL version Hydrax.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;img src="http://4.bp.blogspot.com/_ph5a48Ppxk0/SdywL6G-BXI/AAAAAAAAALI/pSoecFW6blE/s400/screenshot_5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5322322578268620146" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 320px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;     &lt;/span&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Fig7. Under water GodRay&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; effect for OpenGL version Hydrax.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&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/2334675698092448253-3099086736805934742?l=binbinwelkin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://binbinwelkin.blogspot.com/feeds/3099086736805934742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binbinwelkin.blogspot.com/2009/04/hydrax-opengl-version.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2334675698092448253/posts/default/3099086736805934742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2334675698092448253/posts/default/3099086736805934742'/><link rel='alternate' type='text/html' href='http://binbinwelkin.blogspot.com/2009/04/hydrax-opengl-version.html' title='Hydrax ---- OpenGL Version'/><author><name>Little Bin</name><uri>http://www.blogger.com/profile/02261602051302990969</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_ph5a48Ppxk0/SKwo0G8QtqI/AAAAAAAAACo/xJ9AAjY4suU/S220/IMG_1712.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ph5a48Ppxk0/SdyrxJXofWI/AAAAAAAAAKY/zjIu7h03uQM/s72-c/screenshot_1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2334675698092448253.post-192349719075443984</id><published>2008-10-16T20:55:00.000-07:00</published><updated>2008-10-17T08:33:15.726-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='acadamic'/><title type='text'>My First International Conference--ICSC'2008</title><content type='html'>Congratulations to RickChang and myself!!! Last Sat., we have the fistr experience for attending International Conference, haha!!&lt;br /&gt;&lt;br /&gt;The conference was originally hold in Sichuan Province. Because of the big earth quake in May, the venue was changed to Fragrant Hill Hotel, Beijing. What what what a pity, my side-trip to JiuZhai is gone. Anyway, it's still exciting, some pictures for memory.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ph5a48Ppxk0/SPisAckgwdI/AAAAAAAAAGo/ct32Ewoj9DE/s1600-h/IMG_1999.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_ph5a48Ppxk0/SPisAckgwdI/AAAAAAAAAGo/ct32Ewoj9DE/s400/IMG_1999.JPG" alt="" id="BLOGGER_PHOTO_ID_5258141688624366034" border="0" /&gt;&lt;/a&gt;                                                            &lt;span style="font-style: italic;"&gt;                                            IMG.1   Doing my presentation, ~~nervous&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ph5a48Ppxk0/SPisXXhn14I/AAAAAAAAAGw/pI09pKZlqN4/s1600-h/IMG_2001.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_ph5a48Ppxk0/SPisXXhn14I/AAAAAAAAAGw/pI09pKZlqN4/s400/IMG_2001.JPG" alt="" id="BLOGGER_PHOTO_ID_5258142082407061378" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;                                                    IMG.2   Doing my presentation&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ph5a48Ppxk0/SPisok7Y5QI/AAAAAAAAAG4/I6q9V8XP0_g/s1600-h/IMG_2017.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_ph5a48Ppxk0/SPisok7Y5QI/AAAAAAAAAG4/I6q9V8XP0_g/s400/IMG_2017.JPG" alt="" id="BLOGGER_PHOTO_ID_5258142378062570754" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;                                                IMG.3 Waiting for lunch, so relax^_^&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ph5a48Ppxk0/SPitCNZ6xEI/AAAAAAAAAHA/930ZOjxgdSQ/s1600-h/IMG_2003.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_ph5a48Ppxk0/SPitCNZ6xEI/AAAAAAAAAHA/930ZOjxgdSQ/s400/IMG_2003.JPG" alt="" id="BLOGGER_PHOTO_ID_5258142818424767554" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;                                                            IMG.4 Smile &amp;amp; Sunshine&lt;/span&gt;&lt;br /&gt;&lt;img src="file:///C:/DOCUME%7E1/wangbin/LOCALS%7E1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2334675698092448253-192349719075443984?l=binbinwelkin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://binbinwelkin.blogspot.com/feeds/192349719075443984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binbinwelkin.blogspot.com/2008/10/my-first-international-conference.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2334675698092448253/posts/default/192349719075443984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2334675698092448253/posts/default/192349719075443984'/><link rel='alternate' type='text/html' href='http://binbinwelkin.blogspot.com/2008/10/my-first-international-conference.html' title='My First International Conference--ICSC&apos;2008'/><author><name>Little Bin</name><uri>http://www.blogger.com/profile/02261602051302990969</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_ph5a48Ppxk0/SKwo0G8QtqI/AAAAAAAAACo/xJ9AAjY4suU/S220/IMG_1712.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ph5a48Ppxk0/SPisAckgwdI/AAAAAAAAAGo/ct32Ewoj9DE/s72-c/IMG_1999.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2334675698092448253.post-2466114696890940532</id><published>2008-10-15T21:09:00.000-07:00</published><updated>2009-09-11T06:24:59.873-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ogre'/><category scheme='http://www.blogger.com/atom/ns#' term='Shadow'/><title type='text'>Shadow for Ogre</title><content type='html'>Additive shadow in Ogre can generate more realistic effect than other shadow technic. When I adopt it in my project, there're so many problem. Now, i've got rid of them^_^, just share the experience with whoever being in trouble with the same problem.&lt;br /&gt;&lt;br /&gt;Description:&lt;br /&gt;The scene is composed of a runtime generated terrain, and a lander. I want the lander can cast shadow on terrain. The lander and terrain are rendered by custom CG shader. The main light of the scene is a directional light, and on the top of lander, there're two small indicator light, which are simulated by two directional light. You can see from the followed graphic&lt;br /&gt;&lt;br /&gt;Problem:&lt;br /&gt;At first, after setting the standard parameter for additive shadow, i can not generate any shadow on terrain.&lt;br /&gt;Laterly, although there are shadow on the terrain, but when the lander move to the terrain, a white plane will flicker on the terrain. My Gosh!!!&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;For the first problem, if the object is rendered with custom shader, some changes for the object's material must be involved:&lt;br /&gt;If the cast shadow object using hardware skinned technich, you must define the vertex     program for rendering the shdow texture. Otherwise, Ogre will return to use fixed function, and any change of vertext will be eliminated. But if the custom shader do not change the vertex data, just for lighting effect, there's no need to define  "shadow_caster_vertex_program_ref".&lt;br /&gt;shadow_caster_vertex_program_ref myShadowCasterVertexProgram&lt;br /&gt;{&lt;br /&gt;    param_indexed_auto 0 worldviewproj_matrix&lt;br /&gt;    param_indexed_auto 4 ambient_light_colour&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;If the receive shadow object using custom shader, while you need to define both the vertex and fragment shader. Please remember you should do it under any situation. The previous one is generate the texcoord for shadow texture, and the later one is sample the shadow texture to modulate the lighting effect of the object.&lt;br /&gt;shadow_receiver_vertex_program_ref myShadowReceiverVertexProgram&lt;br /&gt;{&lt;br /&gt;    param_indexed_auto 0 worldviewproj_matrix&lt;br /&gt;    param_indexed_auto 4 texture_viewproj_matrix&lt;br /&gt;}&lt;br /&gt;and&lt;br /&gt;shadow_receiver_fragment_program_ref myShadowReceiverFragmentProgram&lt;br /&gt;{&lt;br /&gt;param_named_auto lightDiffuse light_diffuse_colour 0&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The second problem is very boring. I spend three days to solved it. I just want the direction main light can generate shadwo, so I turn on the setCastsShadows character of this light, and turn off the correspondence character of the other two spot light. But in actually when excute the diffuse pass rendering, all the light was iterated, so the material is change to "iteration once_per_light directional". "directional" means only the directional light will be iterated.&lt;br /&gt;&lt;br /&gt;Well, some pictures of final effect, haha&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2334675698092448253-2466114696890940532?l=binbinwelkin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://binbinwelkin.blogspot.com/feeds/2466114696890940532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binbinwelkin.blogspot.com/2008/10/shadow-for-ogre.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2334675698092448253/posts/default/2466114696890940532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2334675698092448253/posts/default/2466114696890940532'/><link rel='alternate' type='text/html' href='http://binbinwelkin.blogspot.com/2008/10/shadow-for-ogre.html' title='Shadow for Ogre'/><author><name>Little Bin</name><uri>http://www.blogger.com/profile/02261602051302990969</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_ph5a48Ppxk0/SKwo0G8QtqI/AAAAAAAAACo/xJ9AAjY4suU/S220/IMG_1712.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2334675698092448253.post-8184025510927608121</id><published>2008-01-13T04:08:00.000-08:00</published><updated>2008-10-17T08:32:18.346-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Terrain'/><category scheme='http://www.blogger.com/atom/ns#' term='Ogre'/><title type='text'>Lunar Surface Rendering with Ogre3D(1)</title><content type='html'>&lt;span lang="EN-US"&gt;It's my great honor to annouce that, Miss Mandy WANG, has her first blog published ^_^!!!&lt;/span&gt;&lt;p class="MsoNormal"&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;First, post some picture for my recent work-----Lunar Surface Rendering.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Big big thanks to ZhongHua Song, the images and data you provided is a great help for the project, really excellent work!!!&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ph5a48Ppxk0/SA3g8UScXDI/AAAAAAAAAB4/dB9vmENppX0/s1600-h/screenshot_1.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_ph5a48Ppxk0/SA3g8UScXDI/AAAAAAAAAB4/dB9vmENppX0/s320/screenshot_1.png" alt="" id="BLOGGER_PHOTO_ID_5192053272270887986" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ph5a48Ppxk0/SA3hqEScXFI/AAAAAAAAACI/UrCFI8LAYr0/s1600-h/screenshot_8.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_ph5a48Ppxk0/SA3hqEScXFI/AAAAAAAAACI/UrCFI8LAYr0/s320/screenshot_8.png" alt="" id="BLOGGER_PHOTO_ID_5192054058249903186" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ph5a48Ppxk0/SA3iHkScXJI/AAAAAAAAACc/vtFBrgrvWZM/s1600-h/screenshot_4.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_ph5a48Ppxk0/SA3iHkScXJI/AAAAAAAAACc/vtFBrgrvWZM/s320/screenshot_4.png" alt="" id="BLOGGER_PHOTO_ID_5192054565056044178" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ph5a48Ppxk0/SA3hR0ScXEI/AAAAAAAAACA/w_JYnIHaahc/s1600-h/screenshot_2.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_ph5a48Ppxk0/SA3hR0ScXEI/AAAAAAAAACA/w_JYnIHaahc/s320/screenshot_2.png" alt="" id="BLOGGER_PHOTO_ID_5192053641638075458" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;        &lt;span style="" lang="EN-US"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2334675698092448253-8184025510927608121?l=binbinwelkin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://binbinwelkin.blogspot.com/feeds/8184025510927608121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binbinwelkin.blogspot.com/2008/01/test.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2334675698092448253/posts/default/8184025510927608121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2334675698092448253/posts/default/8184025510927608121'/><link rel='alternate' type='text/html' href='http://binbinwelkin.blogspot.com/2008/01/test.html' title='Lunar Surface Rendering with Ogre3D(1)'/><author><name>Little Bin</name><uri>http://www.blogger.com/profile/02261602051302990969</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_ph5a48Ppxk0/SKwo0G8QtqI/AAAAAAAAACo/xJ9AAjY4suU/S220/IMG_1712.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ph5a48Ppxk0/SA3g8UScXDI/AAAAAAAAAB4/dB9vmENppX0/s72-c/screenshot_1.png' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
