博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BillBoard技术(广告版)详解!(转)
阅读量:6091 次
发布时间:2019-06-20

本文共 1331 字,大约阅读时间需要 4 分钟。

BillBoard技术(广告版)详解!(转)

今天项目里突然要用到广告版技术。闲来就去摆渡搜索一下,发现这一方面的介绍很少,所以才有了今天这篇文章,也是为了服务于新手,更为了锻炼一下自己,现在把BillBoard技术详细的介绍一下。废话不说,下面进入正题!

一:定义广告版矩形顶点结构和顶点格式,具体代码如下:

struct customvertrx {
float x,y,z;//顶点位置 float u ,v;//定义顶点纹理坐标 }; #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_TEX1)

二:创建广告版矩形和纹理对象。

//以下为创建你需要做广告版的顶点缓冲区

V_RETURN(pd3dDevice->CreateVertexBuffer(4*sizeof(CUSTOMVERTEX,0,D3DFVF_CUSTOMVERTEX,                                                                          D3DPOOL_MANAGED,&g_pTreeVB,NULL)); CUSTOMVERTEX vertices2[] = {
{-1.0f,0.0f,0.0f,0.0f,1.0f,}, {-1.0f,2.5f,0.0f,0.0f,0.0f,}, {
1.0f,0.0f,0.0f,1.0f,1.0f,}, {
1.0f,2.5f,0.0f,1.0f,0.0f,}, }; VOID* pVertices2; if(FAILED(g_pTreeVB->Lock(0,sizeof(vertices2),(void**)&pVertices2,0))) return E_FAIL; memcpy(pVertices2,vertices2,sizeof(vertices2)); g_pTreeVB->Unlock(); //创建所需做广告版的纹理 V_RETURN (D3DXCreateTextureFromFile(pd3dDevice,L"图片名字.bmp",&g_pTreeTex));

接下来就是设置一些Alpha混合系数了,这些代码我的Blog前一章已经介绍过了,这里就不仔细说明了

这一布尤为重要了,我们要根据观察的方向来广告版矩阵,通过旋转矩阵对象使它面向观察者。

D3DXVECTOR3 vDir = vLookatpt - vEyePt; if(vDir.x>0.0f)    D3DXMatrixRotationY(&matBillBoard,-atanf(vDir.z/vDir.x)+D3DX_PI2); else    D3DXMatrixRotationY(&matBillBoard,-atanf(vDir.z/vDir.x)-D3DX_PI2); //广告版矩阵和你的图片矩阵做乘积 g_matTree = matBillBoard*matTree;

以上就是广告版的具体实现,请读者不要复制代码到编译器里,因为这是我在记事本里写的没通过编译难免会有错误!

转载地址:http://gfmwa.baihongyu.com/

你可能感兴趣的文章
本地连接linux虚拟机的方法
查看>>
某公司面试java试题之【二】,看看吧,说不定就是你将要做的题
查看>>
BABOK - 企业分析(Enterprise Analysis)概要
查看>>
Linux 配置vnc,开启linux远程桌面
查看>>
CentOS6.4关闭触控板
查看>>
React Native 极光推送填坑(ios)
查看>>
Terratest:一个用于自动化基础设施测试的开源Go库
查看>>
修改Windows远程终端默认端口,让服务器更安全
查看>>
扩展器必须,SAS 2.0未必(SAS挺进中端存储系统之三)
查看>>
Eclipse遇到Initializing Java Tooling解决办法
查看>>
while((ch = getchar()) != '\n')
查看>>
好程序员web前端分享JS检查浏览器类型和版本
查看>>
Oracle DG 逻辑Standby数据同步性能优化
查看>>
exchange 2010 队列删除
查看>>
「翻译」逐步替换Sass
查看>>
H5实现全屏与F11全屏
查看>>
处理excel表的列
查看>>
C#数据采集类
查看>>
quicksort
查看>>
【BZOJ2019】nim
查看>>