当前位置: 首页>>代码示例>>C++>>正文


C++ Vector4::Set方法代码示例

本文整理汇总了C++中Vector4::Set方法的典型用法代码示例。如果您正苦于以下问题:C++ Vector4::Set方法的具体用法?C++ Vector4::Set怎么用?C++ Vector4::Set使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Vector4的用法示例。


在下文中一共展示了Vector4::Set方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: SetColorFromLua

    // /////////////////////////////////////////////////////////////////
    //
    // /////////////////////////////////////////////////////////////////
    bool SetColorFromLua(const LuaPlus::LuaObject &colorData, Vector4 &color)
    {
        if(!colorData.IsTable()) {
            return (false);
        }

        LuaPlus::LuaObject rData = colorData["r"];
        LuaPlus::LuaObject gData = colorData["g"];
        LuaPlus::LuaObject bData = colorData["b"];
        LuaPlus::LuaObject aData = colorData["a"];

        if(!rData.IsNumber() || !gData.IsNumber() || !bData.IsNumber() || !aData.IsNumber()) {
            return (false);
        }

        F32 r = static_cast<F32>(rData.GetNumber());
        F32 g = static_cast<F32>(gData.GetNumber());
        F32 b = static_cast<F32>(bData.GetNumber());
        F32 a = static_cast<F32>(aData.GetNumber());
        Clamp<F32>(r, 0.0f, 1.0f);
        Clamp<F32>(g, 0.0f, 1.0f);
        Clamp<F32>(b, 0.0f, 1.0f);
        Clamp<F32>(a, 0.0f, 1.0f);
        color.Set(r, g, b, a);

        return (true);
    }
开发者ID:pjohalloran,项目名称:gameframework,代码行数:30,代码来源:LuaStateManager.cpp

示例2: return

    // /////////////////////////////////////////////////////////////////
    //
    // /////////////////////////////////////////////////////////////////
    bool SetVector4FromLua(const LuaPlus::LuaObject &dirData, Vector4 &direction)
    {
        if(!dirData.IsTable()) {
            return (false);
        }

        LuaPlus::LuaObject xData = dirData["x"];
        LuaPlus::LuaObject yData = dirData["y"];
        LuaPlus::LuaObject zData = dirData["z"];
        LuaPlus::LuaObject wData = dirData["w"];

        if(!xData.IsNumber() || !yData.IsNumber() || !zData.IsNumber() || !wData.IsNumber()) {
            return (false);
        }

        F32 x = static_cast<F32>(xData.GetNumber());
        F32 y = static_cast<F32>(yData.GetNumber());
        F32 z = static_cast<F32>(zData.GetNumber());
        F32 w = static_cast<F32>(wData.GetNumber());
        direction.Set(x, y, z, w);

        return (true);
    }
开发者ID:pjohalloran,项目名称:gameframework,代码行数:26,代码来源:LuaStateManager.cpp

示例3: Average

static void Average(void)
{
	float fTexX, fTexY;
	Vector4 vOffset;
	Vector4 vTexOffset_256x256[16];
	Vector4 vTexOffset_64x64[16];
	Vector4 vTexOffset_16x16[16];
	Vector4 vTexOffset_4x4[16];
	int index = 0;

	index=0;
	fTexX = 1.0f/256.0f;
	fTexY = 1.0f/256.0f;
	vOffset.Set(-0.5f/64.0f, -0.5f/64.0f, 0.0f, 0.0f);

	for ( int y=0; y<4; y++ )
	{
		for ( int x=0; x<4; x++ )
		{
			vTexOffset_256x256[index].Set(x*fTexX, y*fTexY, 0.0f, 0.0f);
			vTexOffset_256x256[index] += vOffset;
			index++;
		}
	}

	index=0;
	fTexX = 1.0f/64.0f;
	fTexY = 1.0f/64.0f;
	vOffset.Set(-0.5f/16.0f, -0.5f/16.0f, 0.0f, 0.0f);

	for ( int y=0; y<4; y++ )
	{
		for ( int x=0; x<4; x++ )
		{
			vTexOffset_64x64[index].Set(x*fTexX, y*fTexY, 0.0f, 0.0f);
			vTexOffset_64x64[index] += vOffset;
			index++;
		}
	}

	index=0;
	fTexX = 1.0f/16.0f;
	fTexY = 1.0f/16.0f;
	vOffset.Set(-0.5f/4.0f, -0.5f/4.0f, 0.0f, 0.0f);

	for ( int y=0; y<4; y++ )
	{
		for ( int x=0; x<4; x++ )
		{
			vTexOffset_16x16[index].Set(x*fTexX, y*fTexY, 0.0f, 0.0f);
			vTexOffset_16x16[index] += vOffset;
			index++;
		}
	}

	index=0;
	fTexX = 1.0f/4.0f;
	fTexY = 1.0f/4.0f;
	vOffset.Set(-0.5f, -0.5f, 0.0f, 0.0f);

	for ( int y=0; y<4; y++ )
	{
		for ( int x=0; x<4; x++ )
		{
			vTexOffset_4x4[index].Set(x*fTexX, y*fTexY, 0.0f, 0.0f);
			vTexOffset_4x4[index] += vOffset;
			index++;
		}
	}


	ID3D10EffectTechnique *pShader = g_pExposureFX->GetTechniqueByName("Average16Samples");
	ID3D10EffectShaderResourceVariable *pImage_var = g_pExposureFX->GetVariableByName("Image0")->AsShaderResource();
	ID3D10EffectVectorVariable *pTexOffset_var = g_pExposureFX->GetVariableByName("vTexOffset")->AsVector();

	// pShader->GetPassByIndex(0)->Apply(0);

	// 256x256 -> 64x64
	{
		g_pDevice->OMSetRenderTargets(1, &g_pRTView[DOWNSAMPLED_64x64], NULL);
		SetViewport(DOWNSAMPLED_64x64);

		pImage_var->SetResource(g_pSRView[DOWNSAMPLED_256x256]);
		pTexOffset_var->SetFloatVectorArray( (float *)vTexOffset_256x256, 0, 16);

		pShader->GetPassByIndex(0)->Apply(0);
		DrawFullScreenQuad();
	}

	// 64x64 -> 16x16
	{
		g_pDevice->OMSetRenderTargets(1, &g_pRTView[DOWNSAMPLED_16x16], NULL);
		SetViewport(DOWNSAMPLED_16x16);

		pImage_var->SetResource(g_pSRView[DOWNSAMPLED_64x64]);
		pTexOffset_var->SetFloatVectorArray( (float *)vTexOffset_64x64, 0, 16);

		pShader->GetPassByIndex(0)->Apply(0);
		DrawFullScreenQuad();
	}
//.........这里部分代码省略.........
开发者ID:chenbk85,项目名称:3dlearn,代码行数:101,代码来源:render_dx10.cpp


注:本文中的Vector4::Set方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。