Cookies para estatística e publicidade
Usamos cookies de estatística e de publicidade, ambos enviados ao Google. Recusar não muda nada do que você vê.Ler a página de privacidade
Aqui você converte PLY para OBJ de graça e sem conta: solte o arquivo acima e em poucos segundos o resultado está pronto para baixar. A conversão acontece dentro do seu próprio navegador, então o arquivo nunca é enviado. Funciona igual no Windows, no macOS e no Linux e também no iPhone e no Android, e continua funcionando mesmo se você cortar a conexão.
Até 100 arquivos de uma vez. Formatos misturados não são problema.
Eles são convertidos um após o outro e baixados juntos em um ZIP.
PLY para OBJ
PLY é onde escaneamentos moram e OBJ é onde a modelagem acontece. Todo pacote de escultura e animação lê OBJ sem pensar duas vezes; o suporte a PLY varia de bom, no Blender e no MeshLab, a ausente, numa boa parte das ferramentas que um pipeline de estúdio de fato contém. Quando um escaneamento precisa ser retopologizado, decimado na mão, esculpido ou usado como malha base, o primeiro passo costuma ser uma troca de formato.
A conversão é pequena porque os dois formatos têm ambição parecida. Os dois descrevem uma superfície como uma lista de vértices e uma lista de polígonos sobre eles, os dois são texto, e os dois são antigos o suficiente para tudo ler. O que o OBJ acrescenta é agrupamento e referência a material; o que o PLY acrescenta são propriedades arbitrárias por vértice. Esta conversão carrega a geometria que os dois compartilham.
Um escaneamento por fotogrametria ou luz estruturada guarda sua aparência como vermelho, verde e azul em cada vértice. Não há textura, nem layout de UV, nem arquivo de imagem — a cor é uma propriedade da geometria, o motivo inteiro de o PLY ter virado o formato de escaneamento.
O OBJ que este conversor escreve tem só linhas v e f, e nada mais: sem coordenadas vt, sem referência mtllib, sem .mtl acompanhando. Nem mesmo um arquivo de material feito à mão conseguiria guardar cor por vértice, porque materiais em OBJ se aplicam por grupo de face. O fluxo de trabalho prático é guardar os dois arquivos: fazer o trabalho de geometria a partir do OBJ, e recuperar a cor do PLY depois, gravando as cores de vértice numa textura numa ferramenta que as lê.
Um arquivo PLY descreve um elemento de vértice e um elemento de face. Não há noção de objeto, grupo ou peça, e nenhum nome em lugar nenhum do cabeçalho para a superfície em si. Então o conversor produz exatamente um grupo o, e como não há nome para carregar, escreve um gerado: mesh_1.
No Blender ou no Maya, é isso que aparece no outliner. Num escaneamento só, é inofensivo; num projeto onde seis escaneamentos estão sendo combinados, é um incômodo real, porque toda importação produz um objeto com o mesmo nome. Renomeie na importação, ou renomeie a única linha o do OBJ num editor de texto antes de importar — é a segunda linha do arquivo.
Esta é uma diferença genuína entre este par e a maioria dos outros aqui. Quando um STL ou um OBJ é lido, vértices coincidentes são soldados em seis casas decimais, porque esses formatos rotineiramente chegam com duplicatas. Quando um PLY é lido, seu array de vértices e seus índices de face são pegos exatamente como escritos.
É o comportamento certo para dados escaneados, que já foram malhados por um software que tomou decisões deliberadas sobre conectividade. Também significa que a conversão não consegue limpar nada: se o escaneamento carrega vértices duplicados, vértices não referenciados ou costuras separadas, eles chegam no OBJ sem alteração. A contagem de vértices no OBJ vai bater com a contagem de vértices do elemento no cabeçalho do PLY, o que é um jeito rápido de confirmar que o arquivo converteu do jeito esperado.
Um PLY contendo vértices e nenhuma face é recusado com uma mensagem explicando o motivo. Esse arquivo é uma nuvem de pontos, o que um scanner produz antes de qualquer coisa criar uma malha, e transformar pontos numa superfície é reconstrução, não conversão — uma operação com parâmetros, uma prévia e um resultado que alguém precisa aprovar.
Faça isso onde pertence. MeshLab e CloudCompare oferecem reconstrução de superfície por Poisson e ball-pivoting; Open3D expõe os dois via Python; o software de todo scanner tem uma etapa de geração de malha. Converta a saída malhada depois. Um conversor que reconstruísse silenciosamente uma superfície entregaria uma forma que você nunca escolheu, e nenhum jeito de saber que isso aconteceu.
Listas de faces em PLY podem guardar qualquer número de índices, e ferramentas de geração de malha às vezes produzem quadriláteros. Qualquer face com mais de três cantos é triangulada em leque a partir do primeiro índice antes de ser escrita, o que é correto para polígonos convexos e pode se comportar mal em côncavos.
Malhas de escaneamento já são majoritariamente triângulos, então isso raramente se aplica. Onde se aplica, note que o OBJ que sai é só triângulos — o escritor emite três índices por linha f e nunca reconstrói quadriláteros. Se seu fluxo de retopologia quer uma malha base de quadriláteros, isso é algo que você constrói no aplicativo de modelagem, não algo que um escaneamento algum dia forneceria.
Um PLY binário guarda uma coordenada float32 em quatro bytes. O mesmo número escrito num OBJ ocupa de oito a dezoito caracteres mais separadores, então um OBJ de texto de um escaneamento denso é várias vezes o tamanho do arquivo de origem, e uma malha de fotogrametria bruta com vários milhões de triângulos produz um arquivo de texto que vai fazer um editor sofrer.
Decimar antes é quase sempre a jogada certa, e é uma decisão melhor tomada no MeshLab contra o PLY do que no seu aplicativo de modelagem contra o OBJ, porque o colapso de arestas quadrático do MeshLab pode ser instruído a preservar limites e topologia. Chegar a algumas centenas de milhares de triângulos antes da conversão torna tudo rio abaixo mais rápido e não perde nada que um modelador vá sentir falta.
Espere uma superfície facetada. Nenhuma linha vn é escrita, então normais planas por face são calculadas na importação; sombreie suave ou aplique um ângulo de suavização automática e o escaneamento volta a parecer com ele mesmo. Espere nenhum material, e atribua um antes de qualquer outra coisa para que a malha fique visível contra o viewport.
Depois, o trabalho de escaneamento habitual: remova as ilhas soltas que o scanner captou do fundo, preencha os buracos onde ele não conseguiu ver, e retopologize se a malha tiver de ser animada ou subdividida. Nada disso é trabalho de conversão e nada disso pertence a um conversor — o ponto desta etapa é levar a geometria até a ferramenta onde essas operações são um comando cada.
O OBJ é um arquivo derivado. Tem a forma e nenhuma cor, nenhum valor de confiança ou qualidade por vértice que um scanner escreve, e nenhuma normal se o PLY as carregava. Cada um desses itens é irrecuperável a partir do OBJ.
O padrão que funciona é tratar o PLY como a matriz e o OBJ como uma cópia de trabalho: modele contra o OBJ, e volte ao PLY sempre que a aparência ou os metadados do scanner forem necessários. Os dois arquivos ficam na sua máquina de qualquer jeito — esta conversão roda no navegador sem nada enviado, o que vale saber quando o escaneamento é de um objeto de cliente ou de uma pessoa.
| PLY | OBJ | |
|---|---|---|
| Nome completo | Polygon File Format | Objeto Wavefront |
| Extensão do arquivo | .ply | .obj |
| Tipo de mídia | model/ply | model/obj |
| Publicado pela primeira vez | 1994 | 1992 |
| Publicado por | Stanford University | Wavefront Technologies |
| Licença | Padrão aberto | Padrão aberto |
| Situação hoje | Atual | Atual |
| Abre no navegador | Nenhum navegador | Nenhum navegador |
| Considerado no lugar | STL | GLTF, STL |
MeshLab e Blender leem tanto PLY quanto OBJ, então dá para comparar o resultado com o original sem um segundo programa.
OBJ vem da Wavefront Technologies é de 1992. Blender, MeshLab e Maya leem o formato.
Não. Esta conversão acontece inteiramente no seu navegador, então o arquivo não sai do seu aparelho. Você mesmo pode conferir: abra a aba de rede das ferramentas de desenvolvedor e converta alguma coisa. Você verá a própria página e as requisições de estatística e de publicidade com que este serviço é pago, e nenhuma que leve o seu arquivo.
É. Sem conta, sem marca d’água e sem cota diária para gastar: roda no seu próprio aparelho, então você pode voltar quantas vezes quiser. O navegador processa arquivos de até 100 MB, 100 por vez.
PLY e OBJ descrevem o conteúdo de maneiras radicalmente diferentes. A conversão é, portanto, uma reconstrução e não uma cópia: fiel, mas não idêntica byte a byte. Só a geometria. Materiais, cores, texturas e animação não vão junto, e um modelo colocado várias vezes volta com cada cópia fixada na sua própria posição.
Para a conversão, não: ela acontece no navegador que você já tem aberto. Para abrir o resultado você precisa depois do programa com que o seu aparelho normalmente exibe Wavefront Object.