RenderSurface

-------------------西昌.何雨锋 RenderSurface

RenderSurface是什么?
是一个专门用于渲染的面,这种面在加工好了以后可以被附到mesh、immedeate等等上面去。
如果赋到immedeate上,那么这个面就成了一个画中画的效果。
如果被赋到mesh上,这个面就成了一个监视器一类的东西。

一般的建立很简单
**************************
ITVRenderSurface sface1;
sface1=scene1->CreateRenderSurface(128,128,是否用3d,1000,1000);
//其中128为解析度,如果太高了,会影响速度,太低则不清晰.
//参数是否用3D,好象没啥特别的作用,但是必须设为否,否则就用不起。
**************************

渲染的原理是这样的,在渲染模块中,先不要忙着搞原来的主渲染,而是先用rendersurface渲染之后,
就得到了一个渲染的动态图象,然后再用engine1->Clear(false)把屏幕搽干净之后再进行真正的渲染,
也就是说整个场景渲染了两次,一次先渲染给了rendersurface,然后清除屏幕后再渲染场景给屏幕就OK了。

下面是渲染给rendersurface的部分:
***************************
sface1->SetCamera(xpos,ypos,zpos,lookx,looky,lookz);
//将片面设为摄像机的画面,参数与屏幕同步,当然也可以设在其他的地方。
 sface1->StartRender(tvfalse);
     //这里跟场景的渲染一样,反正就是陆地渲染、大气渲染、人物、mesh渲染等等的东西
 sface1->EndRender();
//渲染好了,什么都不用做,直接清除屏幕开始正常的渲染就可以了。
***************************

下面分成两种,先是渲染给immediate2d的,也就是渲染给2D画面在渲染模块中
***************************
 imt1->ACTION_Begin2D();
        imt1->DRAW_Texture(sface1->GetTexture(),0,0,200,200,RGBA(1,1,1,1),RGBA(1,1,1,1),RGBA(1,1,1,1),RGBA(1,1,1,1),0,0,1,1);
 imt1->ACTION_End2D();
//draw_texture的作用不用多讲了。
//sface1->GetTexture()就可以得到渲染给rendersurface的纹理,然后只需要把它画到2维屏幕的某个位置就可以了。
***************************

渲染给mesh的更简单了,只用在渲染模块中加一句话
***************************
        facemesh->SetTexture(sface1->GetTexture(),-1);
//就将rendersurface渲染给了facemesh,当然这个facemesh必须是在开始就用CreateMeshBuilder建立好了的,最好是wall;
***************************

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值