Jul 14

ConstantBuffer Updates sind nicht trivial

LogoEin Thema, was mich zurzeit sehr beschäftigt, ist der korrekte Umgang mit dem ConstantBuffer in Direct3D 11. Der Constant Buffer wird dafür verwendet, um einem Shader fixe Parameter zu übergeben. Diese Parameter sind bei Mosaic Snake 3D etwa die aktuelle Transformation, die Lichtfarbe, die Lichtstärke und noch ein paar andere. Der Ansatz, neue Werte in den ConstantBuffer zu schreiben, ist bei Mosaic Snake 3D dabei relativ primitiv: Es gibt einen CosntantBuffer über das gesamte Programm. Jedes Mal, wenn ein Objekt (z. B. ein Teil der Schlange) gezeichnet wird, wird der ConstantBuffer vorher mit den aktuellen Informationen überschrieben und danach wird gerendert. Bei diesem Spiel hat der Ansatz auch sehr gut funktioniert, allerdings ergeben Tests in einem anderen Szenario ein ganz anderes Bild… Weiterlesen