enable multisampling and mipmapping

ignore file:// as well as model:// and package://
add newline as additional delimiter for COLLADA DAE loader
This commit is contained in:
Erwin Coumans
2020-09-07 15:26:11 -07:00
parent 913dad4787
commit fc2378dda7
3 changed files with 11 additions and 5 deletions

View File

@@ -64,7 +64,7 @@ struct TokenIntArray
};
template <typename AddToken>
void tokenize(const std::string& str, AddToken& tokenAdder, const std::string& delimiters = " ")
void tokenize(const std::string& str, AddToken& tokenAdder, const std::string& delimiters = " \n")
{
std::string::size_type pos, lastPos = 0;
while (true)
@@ -104,6 +104,7 @@ void readFloatArray(XMLElement* source, btAlignedObjectArray<float>& floatArray,
array->QueryIntAttribute("count", &numVals);
TokenFloatArray adder(floatArray);
floatArray.reserve(numVals);
std::string txt = array->GetText();
tokenize(array->GetText(), adder);
assert(floatArray.size() == numVals);
}
@@ -266,7 +267,8 @@ void readLibraryGeometries(XMLDocument& doc, btAlignedObjectArray<GLInstanceGrap
btAlignedObjectArray<int> curIndices;
curIndices.reserve(numIndices * indexStride);
TokenIntArray adder(curIndices);
tokenize(primitive->FirstChildElement("p")->GetText(), adder);
std::string txt = primitive->FirstChildElement("p")->GetText();
tokenize(txt, adder);
assert(curIndices.size() == numIndices * indexStride);
int indexOffset = vertexPositions.size();

View File

@@ -55,8 +55,11 @@ static bool UrdfFindMeshFile(
return false;
}
std::string drop_it_file = "file://";
std::string drop_it_pack = "package://";
std::string drop_it_model = "model://";
if (fn.substr(0, drop_it_file.length()) == drop_it_file)
fn = fn.substr(drop_it_file.length());
if (fn.substr(0, drop_it_pack.length()) == drop_it_pack)
fn = fn.substr(drop_it_pack.length());
else if (fn.substr(0, drop_it_model.length()) == drop_it_model)

View File

@@ -2159,7 +2159,7 @@ void GLInstancingRenderer::renderSceneInternal(int orgRenderMode)
#endif //OLD_SHADOWMAP_INIT
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
float l_ClampColor[] = {1.0, 1.0, 1.0, 1.0};
glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_BORDER_COLOR, l_ClampColor);
@@ -2351,7 +2351,7 @@ void GLInstancingRenderer::renderSceneInternal(int orgRenderMode)
if (m_data->m_textureHandles[gfxObj->m_textureIndex].m_enableFiltering)
{
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
}
else
@@ -2483,7 +2483,7 @@ void GLInstancingRenderer::renderSceneInternal(int orgRenderMode)
glUniform3f(regularLightDirIn, gLightDir[0], gLightDir[1], gLightDir[2]);
glUniform1i(uniform_texture_diffuse, 0);
glEnable(GL_MULTISAMPLE);
if (gfxObj->m_flags & B3_INSTANCE_TRANSPARANCY)
{
int instanceId = transparentInstances[i].m_instanceId;
@@ -2724,6 +2724,7 @@ void GLInstancingRenderer::enableShadowMap()
void GLInstancingRenderer::clearZBuffer()
{
glClear(GL_DEPTH_BUFFER_BIT);
glEnable(GL_MULTISAMPLE);
}
int GLInstancingRenderer::getMaxShapeCapacity() const