RE: OMR + TEXMAPped unofficial file = ???
2019-12-14, 14:41 (This post was last modified: 2019-12-14, 19:20 by Lasse Deleuran. Edit Reason: Found the solution )
2019-12-14, 14:41 (This post was last modified: 2019-12-14, 19:20 by Lasse Deleuran. Edit Reason: Found the solution )
(2018-03-09, 5:02)Travis Cobbs Wrote: Going mostly with Roland's suggestion (but without any header data), I created an MPD with an embedded checker texture (attached). It looks like this when opened:
Some notes about my implementation:
- I changed BEGIN to START to be consistent with !TEXMAP.
- I only support START/END, not NEXT.
- I'm only officially supporting !DATA in MPD files (since that's the whole point).
- Only one !DATA entry is allowed per 0 FILE entry in the MPD.
- When parsing the BASE64 text, I ignore any characters that aren't in the BASE64 character set, so a space after the 0 !: shouldn't break my parser.
I am trying to make this example work with the web-renderer and I have an issue with the cylindrical definition - particularly in how the third point is placed.
In the example you share, the points are:
p1 = (0,10,0)
p2 = (0,75,0)
p3 = (0,0,-40)
According to the definition on: https://www.ldraw.org/documentation/ldraw-org-file-format-standards/language-extension-for-texture-mapping.html
The points should be interpreted as defining the cylinder with bottom center being p1, top center being p2. p3 is a position on the cylinder where the bottom center of the texture resides.
However. Since p3 has 0 as the Y-ccordinate, and the cylinder is defined to be between y=10 and y=75, this point is not 'on the cylinder'. My question is how to interpret this position and compute the texture correctly: Should I use p3 in the calculations as if everything is fine, or should I project p3 onto the plane defined by normal (p1p2) and p1 being on the plane?
It turns out that projecting p3 onto the base of the cylinder renders a result consistent with other viewers, but this should really be mentioned in the standard.
Edit: It is fixed now. It turns out that flipY=true is default when importing textures using Three.js. Now I just have to fix the UV wraparound issue mentioned elsewhere which you have fought with back in 2011.