Label3D::Label3D(Graphics::Renderer *r, RefCountedPtr<Text::DistanceFieldFont> font) : Node(r, NODE_SOLID) //appropriate for alpha testing , m_font(font) { Graphics::MaterialDescriptor matdesc; matdesc.textures = 1; matdesc.alphaTest = true; matdesc.lighting = true; m_geometry.Reset(font->CreateVertexArray()); m_material.Reset(r->CreateMaterial(matdesc)); m_material->texture0 = font->GetTexture(); m_material->diffuse = Color::WHITE; m_material->emissive = Color(0.15f); m_material->specular = Color::WHITE; }
Label3D::Label3D(Graphics::Renderer *r, RefCountedPtr<Text::DistanceFieldFont> font) : Node(r, NODE_TRANSPARENT) , m_font(font) { Graphics::MaterialDescriptor matdesc; matdesc.textures = 1; matdesc.alphaTest = true; matdesc.lighting = true; m_geometry.reset(font->CreateVertexArray()); m_material.Reset(r->CreateMaterial(matdesc)); m_material->texture0 = font->GetTexture(); m_material->diffuse = Color::WHITE; m_material->emissive = Color(38, 38, 38); m_material->specular = Color::WHITE; Graphics::RenderStateDesc rsd; rsd.depthWrite = false; m_renderState = r->CreateRenderState(rsd); }