Я хочу, чтобы отобразить текстуру в виде нижнего правого евклидов треугольника гиперболического треугольника на Пуанкаре диске, который выглядит следующим образом:Карта текстуры на гиперболический треугольник
Вот (верхний левый треугольник текстуры прозрачен и не используется). Вы могли бы признать это как часть Circle Limit I Эшера:
И это то, что мой многоугольник выглядит (это с центром в начале координат, а это значит, что два ребра представляют собой прямые линии, однако в целом все три ребра будут быть кривые, как и в первой картине):
центр многоугольника является incentre из евклидова треугольника, образованного его вершин, и я UV отображение текстуры, используя его вписанной, разделив его в одна и та же число граней, так как многоугольник имеет и отображает каждую грань на соответствующую грань многоугольника. Однако результат выглядит следующим образом:
Если кто-то думает, что это решаемая с помощью УФ отображение Я был бы счастлив, чтобы обеспечить некоторый пример кода, однако я начинаю думать, что это не может быть возможно и Я должен буду написать свои собственные функции шейдера.
я задал этот вопрос снова на computergraphics.stackexchange и получил ответ там http://computergraphics.stackexchange.com/questions/2117/map-a-texture-on-a-hyperbolic-triangle – looeee
Это аккуратно. Вы могли бы представить более подробный пример того, как вы это сделали? –
Вы можете ознакомиться с кодом здесь https://github.com/looeee/hyperbolic-tiling/tree/master/es2015. Что касается рисования многоугольников, то большинство кода находится в классе elements.js Polygon, который передает сетку методу polygon() в threejs.js для рисования. Я сохраняю рабочий снимок в прямом эфире на eschersketch.com. – looeee