[发明专利]一种实现透明三维物体渲染的方法有效
| 申请号: | 201110116361.9 | 申请日: | 2011-05-06 |
| 公开(公告)号: | CN102737404B | 公开(公告)日: | 2017-03-01 |
| 发明(设计)人: | 蔡欢;张君琦;郑培枫;李涛 | 申请(专利权)人: | 新奥特(北京)视频技术有限公司 |
| 主分类号: | G06T15/20 | 分类号: | G06T15/20 |
| 代理公司: | 北京挺立专利事务所(普通合伙)11265 | 代理人: | 叶树明 |
| 地址: | 100195 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 实现 透明 三维 物体 渲染 方法 | ||
1.一种实现透明三维物体渲染的方法,其特征在于,包括:
根据三角片的三个顶点值、法向量和观察矩阵判断三角片是正对着观察者还是背对着观察者;
计算背对着观察者的顶点的光照颜色和深度值;
对背对着观察者的每个三角片进行光栅化,并存储三角片背面颜色值;
计算正对着观察者的顶点的光照颜色和深度值;
对正对着观察者的每个三角片进行光栅化,并存储三角片正面颜色值;
对存储的三角片的背面颜色值与正面颜色值进行混合,完成透明三维物体的渲染。
2.如权利要求1所述的实现透明三维物体渲染的方法,其特征在于,在进行计算之前需要预先准备两个颜色缓冲区,正面颜色缓冲区bufferFront和背面颜色缓冲区bufferBack并初始化;准备两个深度缓冲区,正面深度缓冲区depthBufferF和背面深度缓冲区depthBufferB。
3.如权利要求1所述的实现透明三维物体渲染的方法,其特征在于,所述bufferFront与bufferBack分别用于存储正面颜色和背面颜色的渲染结果。
4.如权利要求1所述的实现透明三维物体渲染的方法,其特征在于,所述depthBufferF和epthBufferB分别用于在渲染正面和背面三维物体时候进行深度判断。
5.如权利要求1所述的实现透明三维物体渲染的方法,其特征在于,所述计算背对着观察者的顶点的光照颜色时候将法向量反向。
6.如权利要求1所述的实现透明三维物体渲染的方法,其特征在于,所述对背对着观察者的每个三角片进行光栅化具体为:
计算三角片中每个像素的颜色值及深度值并将所述像素的深度值与深度缓冲区depthBufferB中的值做比较;
如果所述像素的深度值大于depthBufferB中的值,则用所述像素的深度值替换depthBufferB中的相应值并将这个像素的颜色值与颜色缓冲区bufferBack中的相应颜色值混合,同时将这个像素的颜色值作为前景色而缓冲区中的颜色作为背景色,存储在颜色缓冲区bufferBack中;
如果所述像素的深度值小于depthBufferB中的值,将这个像素的颜色值与颜色缓冲区bufferBack中的相应颜色值混合,将这个像素的颜色值作为背景色而缓冲区中的颜色作为前景色,存储在颜色缓冲区bufferBack中。
7.如权利要求1所述的实现透明三维物体渲染的方法,其特征在于,所述对正对着观察者的每个三角片进行光栅化具体为:
计算三角片中每个像素的颜色值及深度值,将所述像素的深度值与深度缓冲区depthBufferF中的值做比较,如果大于depthBufferF中的值,则用所述像素的深度值替换depthBufferF中的相应值并将所述像素的颜色值与颜色缓冲区bufferFront中的相应颜色值混合,同时将所述像素的颜色值作为前景色而缓冲区中的颜色作为背景色,存储在颜色缓冲区bufferFront中;
如果所述像素的深度值小于depthBufferF中的值,将所述像素的颜色值与颜色缓冲区bufferFront中的相应颜色值混合,同时将这个像素的颜色值作为背景色而缓冲区中的颜色作为前景色,存储在颜色缓冲区bufferFront中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新奥特(北京)视频技术有限公司,未经新奥特(北京)视频技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110116361.9/1.html,转载请声明来源钻瓜专利网。





