问题1:Deck.gl中vertex-shader中的attribute数据是如何通过layer.props更新的?
问题2: layer的props中函数型accessor是如何传入到vertex-shader中的?
首先,这两个问题并不太容易理解。第一个问题的背景如下:
Deck.lg很多图层(Layer)绘制是通过将几何对象的坐标通过attribute传入到vertex-shader中,比如ArcLayer的shader片段如下:
export default `\
#define SHADER_NAME arc-layer-vertex-shader
attribute vec3 positions;
attribute vec4 instanceSourceColors;
attribute vec4 instanceTargetColors;
attribute vec3 instanceSourcePositions;
// ...
void main(void) {
geometry.worldPosition = instanceSourcePositions;

本文详细探讨了Deck.gl中如何通过layer.props更新vertex-shader中的attribute数据,以及layer中函数型accessor如何传入到vertex-shader。主要涉及AttributeManager的角色,包括添加动态属性、数据更新、属性设置等步骤。通过分析Attribute的构造过程和_autoUpdater函数,揭示了数据迭代器的创建和数据传递到着色器attribute的过程。
最低0.47元/天 解锁文章
1838

被折叠的 条评论
为什么被折叠?



