watermesh.cpp

来自「java实现的简单的分形树。简单易学!是学习分形知识的很好的例子。其java语法」· C++ 代码 · 共 43 行

CPP
43
字号
#include "stdafx.h"

#include "WaterMesh.h"


CWaterMesh::CWaterMesh( const CResourceId& meshID )
{
	CMesh& mesh = *RGET_MESH(meshID);
	mAABB = mesh.getTotalAABB();

	CRenderableMesh* m;
	m = new CRenderableMesh( mesh, 0, &mMatrix.getOrigin() );
	mMesh[BASE] = m;
	m->getParams().setEffect( *RGET_FX("water") );
	m->getParams().addMatrix4x4Ref( "mWorld", mMatrix );
	m->getParams().addMatrix4x4Ref( "mWorldView", mWorldView );
	m->getParams().addMatrix4x4Ref( "mWVP", mWVP );
	m->getParams().addTexture( "tRefl", *RGET_S_TEX(RID_LAKEREFL) );
	m->getParams().addTexture( "tWaves", *RGET_TEX("wave") );

	m = new CRenderableMesh( mesh, 0, &mMatrix.getOrigin() );
	mMesh[COLOR] = m;
	m->getParams().setEffect( *RGET_FX("waterColorOnly") );
	m->getParams().addMatrix4x4Ref( "mWorld", mMatrix );
	m->getParams().addMatrix4x4Ref( "mWorldView", mWorldView );
	m->getParams().addMatrix4x4Ref( "mWVP", mWVP );
	m->getParams().addTexture( "tRefl", *RGET_S_TEX(RID_LAKEREFL) );
	m->getParams().addTexture( "tWaves", *RGET_TEX("wave") );

	m = new CRenderableMesh( mesh, 0, &mMatrix.getOrigin() );
	mMesh[NORMALZ] = m;
	m->getParams().setEffect( *RGET_FX("waterNormalZOnly") );
	m->getParams().addMatrix4x4Ref( "mWorld", mMatrix );
	m->getParams().addMatrix4x4Ref( "mWVP", mWVP );
}

void CWaterMesh::render( eRenderMode mode )
{
	if( preRender() ) {
		G_RENDERCTX->attach( *mMesh[mode] );
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?