*feature test* ubitode, let convex hull shape type work for prims other
than uploaded meshs, making it change the mesh level of detail from high to low. This will work on all prims that get a internal mesh or sculpts. Mesh size reduction will depend on particular shape. This is not as SL. There prims do also get concave areas. Uploaded meshs work as before. A normal 10x10x10 torus gets 152 vertices in place of 900, and 198 faces in place of 1198.avinationmerge
parent
8ad1d79003
commit
92d44446fa
|
@ -1092,18 +1092,21 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
CalcPrimBodyData();
|
||||
|
||||
m_mesh = null;
|
||||
if (_parent_scene.needsMeshing(pbs))
|
||||
if (_parent_scene.needsMeshing(pbs) && (pbs.SculptData.Length > 0))
|
||||
{
|
||||
bool convex;
|
||||
int clod = (int)LevelOfDetail.High;
|
||||
if (m_shapetype == 0)
|
||||
convex = false;
|
||||
else
|
||||
{
|
||||
convex = true;
|
||||
|
||||
m_mesh = _parent_scene.mesher.CreateMesh(Name, _pbs, _size, (int)LevelOfDetail.High, true, convex);
|
||||
if (_pbs.SculptType != (byte)SculptType.Mesh)
|
||||
clod = (int)LevelOfDetail.Low;
|
||||
}
|
||||
m_mesh = _parent_scene.mesher.CreateMesh(Name, _pbs, _size, clod, true, convex);
|
||||
}
|
||||
|
||||
|
||||
m_building = true; // control must set this to false when done
|
||||
|
||||
AddChange(changes.Add, null);
|
||||
|
@ -1360,12 +1363,18 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
if (m_mesh == null)
|
||||
{
|
||||
bool convex;
|
||||
int clod = (int)LevelOfDetail.High;
|
||||
|
||||
if (m_shapetype == 0)
|
||||
convex = false;
|
||||
else
|
||||
{
|
||||
convex = true;
|
||||
if (_pbs.SculptType != (byte)SculptType.Mesh)
|
||||
clod = (int)LevelOfDetail.Low;
|
||||
}
|
||||
|
||||
mesh = _parent_scene.mesher.CreateMesh(Name, _pbs, _size, (int)LevelOfDetail.High, true, convex);
|
||||
mesh = _parent_scene.mesher.CreateMesh(Name, _pbs, _size, clod, true, convex);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1373,7 +1382,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
}
|
||||
|
||||
if (mesh == null)
|
||||
{
|
||||
{
|
||||
m_log.WarnFormat("[PHYSICS]: CreateMesh Failed on prim {0} at <{1},{2},{3}>.", Name, _position.X, _position.Y, _position.Z);
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue