tI'm努力理解DirectX中恆緩衝區。我已經看到了兩種語法如何使用着色器常量緩衝器?
float4 myVar;
在着色器文件的頂層聲明,並
cbuffer myBuffer
{
float4 myVar;
}
上http://msdn.microsoft.com/en-gb/library/windows/desktop/bb509581(v=vs.85).aspx
我的理解是恆定的緩衝器需要被分配到插槽詳見(零基於索引),並可以在代碼中設置。
兩個框架我已經看了(SlimDX VS SharpDX)似乎有不同的習慣來設置他們 - 通過字符串名稱由插槽號SlimDX(通過着色器反射?)和SharpDX - 儘管它不清楚的地方插槽號是從哪裏獲得的?
任何人都可以闡明兩種語法之間的差異,如果它們實際上不同,如何將槽號分配給.fx文件中的聲明以及槽號之間的共享如何在着色器之間共享?
任何幫助表示讚賞
謝謝 - 如果可以的話,一個跟進 - 你在這裏說效果框架是遺留的 - 是否應該避免效果11?我無法在http://msdn.microsoft.com/en-us/library/windows/desktop/ff476136(v=vs.85).aspx上看到提及的內容,但http://blogs.msdn.com/b /chuckw/archive/2012/10/24/effects-for-direct3d-11-update.aspx提到它主要是爲了從效果10中輕鬆移植而來。是否建議完全跳過它的使用? – AnonDev 2013-04-10 09:43:19
Effects11/Effects/FX文件已過時,不再由Microsoft維護(這就是爲什麼整個Effects11甚至只能從舊版DirectX 2010 SDK或博客文章訪問)。因此,他們不會再改進它以支持下一個Direct3D功能。從Windows RT應用程序使用它也是不可能的。 – xoofx 2013-04-10 14:18:09