Huge renderer update (WIP). Still plenty to do, especially pertaining to UI.

-Nametag bubble visbility is oddly inconsistent. May vanish with future planned UI merges...
-VBOs are PAINFULLY slow on ATI hardware. This repos self-compiled davep/shining-fixes branch, so I'll leave the ball in LL's court for now regarding that.
This commit is contained in:
Shyotl
2011-12-09 14:02:29 -06:00
parent 8e7733b2ce
commit ffb285c6ff
499 changed files with 22321 additions and 12356 deletions

View File

@@ -484,7 +484,7 @@ void LLVOGrass::plantBlades()
}
void LLVOGrass::getGeometry(S32 idx,
LLStrider<LLVector3>& verticesp,
LLStrider<LLVector4a>& verticesp,
LLStrider<LLVector3>& normalsp,
LLStrider<LLVector2>& texcoordsp,
LLStrider<LLColor4U>& colorsp,
@@ -536,21 +536,24 @@ void LLVOGrass::getGeometry(S32 idx,
position.mV[0] = mPosition.mV[VX] + x + xf;
position.mV[1] = mPosition.mV[VY] + y + yf;
position.mV[2] = mRegionp->getLand().resolveHeightRegion(position);
*verticesp++ = v1 = position + mRegionp->getOriginAgent();
*verticesp++ = v1;
v1 = position + mRegionp->getOriginAgent();
(*verticesp++).load3(v1.mV);
(*verticesp++).load3(v1.mV);
position.mV[0] += dzx;
position.mV[1] += dzy;
position.mV[2] += blade_height;
*verticesp++ = v2 = position + mRegionp->getOriginAgent();
*verticesp++ = v2;
v2 = position + mRegionp->getOriginAgent();
(*verticesp++).load3(v2.mV);
(*verticesp++).load3(v2.mV);
position.mV[0] = mPosition.mV[VX] + x - xf;
position.mV[1] = mPosition.mV[VY] + y - xf;
position.mV[2] = mRegionp->getLand().resolveHeightRegion(position);
*verticesp++ = v3 = position + mRegionp->getOriginAgent();
*verticesp++ = v3;
v3 = position + mRegionp->getOriginAgent();
(*verticesp++).load3(v3.mV);
(*verticesp++).load3(v3.mV);
LLVector3 normal1 = (v1-v2) % (v2-v3);
normal1.mV[VZ] = 0.75f;
@@ -561,8 +564,9 @@ void LLVOGrass::getGeometry(S32 idx,
position.mV[0] += dzx;
position.mV[1] += dzy;
position.mV[2] += blade_height;
*verticesp++ = v1 = position + mRegionp->getOriginAgent();
*verticesp++ = v1;
v1 = position + mRegionp->getOriginAgent();
(*verticesp++).load3(v1.mV);
(*verticesp++).load3(v1.mV);
*(normalsp++) = normal1;
*(normalsp++) = normal2;