操作系統(tǒng):Windows8.1
顯卡:Nivida GTX965M
開發(fā)工具:Visual Studio 2017
Introduction
在接下來幾個(gè)章節(jié)中,我們將會(huì)使用內(nèi)存頂點(diǎn)緩沖區(qū)來替換之前硬編碼到vertex shader中的頂點(diǎn)數(shù)據(jù)。我們將從最簡(jiǎn)單的方法開始創(chuàng)建一個(gè)CPU可見的緩沖區(qū),并使用memcpy直接將頂點(diǎn)數(shù)據(jù)直接復(fù)制到緩沖區(qū),之后將會(huì)使用分段緩沖區(qū)將頂點(diǎn)數(shù)據(jù)賦值到高性能的內(nèi)存。
Vertex shader
首先要修改的是頂點(diǎn)著色器,不再包含頂點(diǎn)數(shù)據(jù)。頂點(diǎn)著色器接受頂點(diǎn)緩沖區(qū)的輸入使用in關(guān)鍵字。
#version 450#extension GL_ARB_separate_shader_objects : enable layout(location = 0) in vec2 inPosition; layout(location = 1) in vec3 inColor; layout(location = 0) out vec3 fragColor;out gl_PerVertex { vec4 gl_Position; };void main() { gl