从实质上说,Flat是一个四边形,由两个三角形组成。将指定目标的渲染效果贴在Flat上,可实现很多种效果。本文实现的是在水底往上看的效果:把贴在水面上的纹理贴在该四边形上。
先看Flat类定义:
struct flat2D
{
float4 position;
float2 uv;
};
class Flat : public RenderObject
{
public:
Flat(float2 pos,float2 size);
void _Render();
void RendWire(){};
~Flat(void);
private:
float2 m_size;
float2 m_position;
LPDIRECT3DVERTEXBUFFER9 m_pVB;
LPDIRECT3DINDEXBUFFER9 m_pIB;
};
应该不难理解,关于RenderObject的实现请看引擎技术研究之渲染到目标,RendWire()在Flat没意思,纯属是实例化纯虚函数而已
在构造函数里用四个顶点构成一个四边形,_Render()实现如下:
if(NULL!=m_pMeshTextures)
{
m_pShader->SetTexture("ColorMap",m_pMeshTextures[0]);
m_pShader->CommitChanges();
}
D3Dsystem::GetInstance()->GetDevice()->SetStreamSource( 0, m_pVB, 0, sizeof(flat2D) );
D3Dsystem::GetInstance()->GetDevice()->SetIndices(m_pIB);
D3Dsystem::GetInstance()->GetDevice()->SetFVF( D3DFVF_2DVERTEX );
D3Dsystem::GetInstance()->GetDevice()->DrawIndexedPrimitive( D3DPT_TRIANGLELIST, 0, 0,4,0,2);
均用一般的设置。
在scene里定义Flat * flatmodel;
....................
flatmodel=new Flat(float2(0,0),float2(1024/5,768/5));
....................
等等
在场景更新函数里加入:
//mpReflectTarget->GetTexture() 得到贴到水面的纹理
flatmodel->SetTexture(mpReflectTarget->GetTexture());
有关于mpReflectTarget的相关实现请看:引擎技术研究之水的渲染
最终效果图:
分享到:
相关推荐
第8章 服务器端渲染;;目录;目录;知识架构;知识架构;知识架构;知识架构;8.3 webpack搭建服务器端渲染;8.3 webpack搭建服务器端渲染;8.3 webpack搭建服务器端渲染;8.3 webpack搭建服务器端渲染;8.3 webpack搭建服务器...
图形学实验:flat shading C++源码(用opengl实现) 给定物体的动态序列(见附件),请利用局部光照模型将其渲染。要求: (1)给场景增加一个平坦的地面模型,增加纹理到地面上更好; (2)在适当位置设置两个光源; ...
Web前端框架应用:第8章 服务器端渲染-渲染实现.pptx
Web前端框架应用:第8章 服务器端渲染-服务器渲染.pptx
MarkdownPad2解决HTML渲染问题的组件:awesomium_v1.6.6_sdk_win.exe 破解教程:http://blog.csdn.net/kuaifan123/article/details/79177199
本书具有很高的技术含量和参考价值,特别适合以真实视觉效果为首位的影视动和特效制作从业人员,是建筑设计、工业产品、广告包装等行业的渲染应用技术指南,也是CG渲染爱好者自学用书,适合初学者和有一定水平的中、...
实例1:读取STL文件并渲染显示 实例2:读取VTI文件并渲染显示 实例3:读取VTK文件并渲染显示 实例4:读取MHA文件并渲染显示 实例5:读取DCM文件并渲染显示 实例6:读取MHD文件并渲染显示 实例7:读取VTK格式文件并...
Flatiron 是一个独特的纹理渲染插件,只需要几次简单的单击,它就可以烘焙所有场景或者选择的对象到单一的UV贴图中。它非常快速、方便,以及自动展开和烘焙解决方案可加速烘焙复杂场景的过程。 Flatiron可用于所有...
通过《C# wpf 使用d3d渲染yuv视频数据》我们实现了在Image控件中显示视频,解决了控件绘制不兼容问题。但如果有时候不想依赖D3D时,还有一种方案实现视频的渲染,使用wpf的WriteableBitmap,WriteableBitmap的祖先...
游戏图形批量渲染及优化:Unity静态合批技术
Vue实现服务器端渲染的Todo应用
三维数字化技术综合应用— — 案例:三维文字动画4 - 渲染动画 渲染动画 上次课我们学习了如何制作文字飞入画面并 逐渐放大的动画效果,这次课我们来学习如 何渲染动画。渲染动画是一个从模型生成图 像的过程,这个...
Virtual+DOM,vdom + threejs在3D渲染中的应用——类ReactJS库的实现及3D应用+
使用native实现的安卓渲染的应用
Vue3打造SSR网站应用,0到1实现服务端渲染(附电子书)
三维数字化技术综合应用— — 案例:三维文字动画2 - 设置材质及渲染背景 设置材质及渲染背景 上次课我们学习了三维文字动画中 三维文字模型的创建方法。为了丰 富动画的视觉效果,这节课我们将 给模型指定材质,并...
低质量渲染图像的目标物体6D姿态估计
基于Ogre的延迟渲染应用,讲的非常详细,很适合想了解这方面技术的初学者
1. 客户端渲染:户访问 url,请求 html 件,前端根据路由动态渲染 2. 服务端渲染:户访问 url,服务端根据访问路径请求所需数据,拼接 3. 预渲染
AutoCAD 2016中文版精彩百例视频教程