Deck.gl Solidpolygonlayer Шейдер Инъекция шейдера для смещения экструдированных многоугольниковJavascript

Форум по Javascript
Anonymous
Deck.gl Solidpolygonlayer Шейдер Инъекция шейдера для смещения экструдированных многоугольников

Сообщение Anonymous »

Я пытаюсь создать пользовательский Deck.gl SolidpolygonLayer, который добавляет дополнительный атрибут функции к вертикально смещенным экструдированным многоугольникам (заставьте их плавать над картой на высотах переменных). < /p>
На основе этих документов:
https://deck.gl/docs/developer-guide/cu ... ader-hooks
https://deck.gl/docs/api-reference/core/project
Я придумал следующее





shaders.inject = {
'vs:#decl': `attribute float instanceBaseOffset;`,
'vs:DECKGL_FILTER_GL_POSITION': `
vec3 offsetWorldPosition = geometry.worldPosition + vec3(0.0, 0.01, 0.0);
vec3 offsetWorldPosition64Low = vec3(0.0);
vec3 commonPosition = project_position(offsetWorldPosition, offsetWorldPosition64Low);
// position = project_common_position_to_clipspace(vec4(commonPosition, 1));
position = vec4(position.x, position.y + 0.1, position.z, position.w);
`
}
< /code>
Я могу получить доступ к геометрии, компенсировать ее (на данный момент постоянной), а затем проецировать ее, чтобы обрезать пространство и установить положение. Проблема заключается в том, что это сбрасывает экструзию, которую Deck.gl уже рассчитывал. Похоже, ни один из них не позволяет мне сделать то, что я хочу. < /P>
Я также пытался изменить мировоззрение напрямую и внедрить, что ранее до того, как были рассчитаны выбросы, но я, кажется, не имею доступа к переменной на VS:#Main-Start.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... d-polygons

Вернуться в «Javascript»