4
我想在OpenGL中繪製一條線,它會經常收到新的點。 我想要實現的是一個物體在他身後畫一條線。opengl如何繪製動態線條?
所以,做我必須做的一個陣列,所有新的點追加到它(BufferData設置爲GL_DYNAMIC_DRAW)。然後用glDrawArrays重畫這一行。 Tesselation + stroke的寬度將在vertexshader內部?
或者還有更好的方法嗎?
我想在OpenGL中繪製一條線,它會經常收到新的點。 我想要實現的是一個物體在他身後畫一條線。opengl如何繪製動態線條?
所以,做我必須做的一個陣列,所有新的點追加到它(BufferData設置爲GL_DYNAMIC_DRAW)。然後用glDrawArrays重畫這一行。 Tesselation + stroke的寬度將在vertexshader內部?
或者還有更好的方法嗎?
晚上好:)
好一點休息。我finnaly來到一個解決方案,並希望分享它: 這個想法是在給定的延遲後繪製當前位置的一個點。時間延遲定義了實際線路的平滑程度。然後,您將不得不根據繪製的定位點計算2個新點,這兩個點都將乘以給定的寬度。
哦,對於那些情節,你也必須得到你的對象的運動方向來計算正確的法線。
在OpenGL的側則必須初始化固定大小頂點緩衝器
gl.glBufferData(gl.GL_ARRAY_BUFFER, 8 * self.maxPoints, None, gl.GL_DYNAMIC_DRAW)
# 8 bytes 2 points = 1 plot
# maxPoints amount of max plots
對象您上傳每一幀的那些2個點(gl.glBufferSubData)。挺容易 ?不是?讓我畫我的結果:
結果(用WASD控制):