void GPUBillboardSet::setBillboardSize(Ogre::Vector2 size)
{
	// The billboard size is stored as custom parameter #0 of this renderable.
	// In "Vertex shader only" mode, the parameter is used by the vertex program,
	// In "Vertex+Geometry shader" mode, it is used by the geometry program.
	setCustomParameter(0, Ogre::Vector4(size.x, size.y, 0.f, 0.f));
	mBillboardSize = size;
}
Esempio n. 2
0
static LOWERCODESIZE void displayUIParameter(int8_t num)
{
	int8_t i;
	char s[20];
	const struct uiParam_s * prm = &uiParameters[ui.activeParamIdx];

	ui_setNoActivePot();
	
	strcpy(s,prm->name);
	strcat(s,"= ");
	
	switch(prm->type)
	{
	case ptCont:
		s[strlen(s)-1]='\0'; // remove trailing space
		ui.lastActivePotValue=ui.adjustedLastActivePotValue=currentPreset.continuousParameters[prm->number];
		break;
	case ptStep:
		strcat(s,prm->values[currentPreset.steppedParameters[prm->number]]);
		break;
	case ptCust:
		// reverse lookup for uiParam value (assumes only steppedParameters will be modified)
		memcpy(tempBuffer,currentPreset.steppedParameters,sizeof(currentPreset.steppedParameters));
		for(i=0;i<4;++i)
		{
			setCustomParameter(prm->number,i);
			if(!memcmp(tempBuffer,currentPreset.steppedParameters,sizeof(currentPreset.steppedParameters)))
			{
				strcat(s,prm->values[i]);
				break;
			}
		}
		break;
	}
	
	sevenSeg_scrollText(s,1);
}
    PlanetFilter::PlanetFilter(int face, int lod, int x, int y, int size, int border) : SimpleRenderable() {
        initRenderOp();
        initVertexData(lod, x, y, size, border);

        Real height = getReal("planet.height");
        Real radius = getReal("planet.radius");
        
        setMaterial("BaseWhiteNoLighting");
        
        // SampleDistance
        setCustomParameter(1, Vector4(1.0 / (size + border), 0, 0, 0));
        // inverseSampleDistance
        setCustomParameter(2, Vector4(((border + size) << lod) * .25, 0, 0, 0));
        // heightScale
        setCustomParameter(3, Vector4(height / radius, 0, 0, 0));

        // Something weird here with vertical axis mapping.
        Matrix3 faceTransform = PlanetCube::getFaceTransform(face);
        setCustomParameter(4, Vector4(faceTransform[0][0], faceTransform[1][0], faceTransform[2][0], 0));
        setCustomParameter(5, Vector4(-faceTransform[0][1],-faceTransform[1][1],-faceTransform[2][1], 0));
        setCustomParameter(6, Vector4(faceTransform[0][2], faceTransform[1][2], faceTransform[2][2], 0));
    }