OpenCTM
Utvecklare | Marcus Geelnard |
---|---|
Initial release | 2009 |
Stabil frisättning | 1.0.3 / 15 januari 2010
|
Skrivet i | C |
Operativ system | Windows , Mac OS X , Linux , etc. |
Typ | 3D datorgrafik |
Licens | zlib licens |
Hemsida | http://openctm.sourceforge.net/ |
OpenCTM är en 3D-geometriteknik för att lagra triangelbaserade maskor i ett kompakt format.
Översikt
OpenCTM är ett projekt med öppen källkod som har utvecklats kring en teknik för att komprimera 3D- triangelnät . Tekniken är uppdelad i tre olika delar:
- Ett öppet, binärt filformat.
- Ett programbibliotek med öppen källkod för att läsa och skriva OpenCTM-filer.
- En mjukvaruuppsättning för att konvertera och visa OpenCTM-filer.
Den triangelnätdatastruktur som OpenCTM använder är direkt kompatibel med högpresterande grafikrenderingspipelines, såsom OpenGL , vilket gör att den är lämplig för interaktiva datorgrafikapplikationer. Andra applikationstyper, såsom CAD / CAM -verktyg, behöver vanligtvis konvertera mesh-data till ett anpassat mesh-format för effektivare datahantering.
OpenCTM använder en triangelindexmatris för att representera triangelanslutningsinformationen och flera matriser för att representera vertexdata (vertexkoordinater, normaler , UV-koordinater och anpassade vertexattribut).
Filformat
Filformatet, som är binärt , använder 32-bitars little endian -format för alla heltalsfält och 32-bitars binärt IEEE 754- format för alla flyttalsfält (även little endian).
Filen börjar med en speciell heltalsidentifierare, 0x4D54434F, som, om den tolkas som fyra ASCII-tecken , bildar strängen "OCTM". Efter identifieraren finns ett heltalsvärde som anger filformatsversionen (den senaste officiella filformatsversionen är 5).
Resten av filen, som beskrivs i filformatsspecifikationen, innehåller triangelnätinformationen. Detta inkluderar en komprimerad triangelindexmatris och komprimerade vertexmatriser (en matris för varje vertexattribut).
På grund av de många stegen av databearbetning som krävs för att implementera komprimeringen, är det vanligtvis mer komplext att interagera med filformatet direkt än att interagera med andra, okomprimerade triangelmesh-filformat (till exempel STL och PLY ) .
Kompression
Kompressionen är baserad på förlustfri entropi-reduktion, med hjälp av olika differentieringsoperationer, följt av förlustfri entropikodning med hjälp av LZMA -komprimeringsbiblioteket.
Se även
- ^ OpenCTM Format Specification , version 5
externa länkar