我是新的Direct3D,圖形,HLSL,C++,並且我試圖寫一個程序來呈現不同的幾何形狀的多維(例如超立方體),則程序假定給用戶之後從所述用戶接收的頂點定義了尺寸的數量,繪製,旋轉和平移形狀。Direct3D和HLSL不同大小的頂點和multiddimensional幾何對象?
第一個問題是如何定義動態頂點結構(是否可以使用指針)。第二:在何處將形狀從x維投影到三維空間,我應該在代碼(CPU)中執行該操作,還是可以將對象頂點和投影矩陣傳遞給着色器(HLSL ),如果是的話(尤其是矩陣在運行時定義的大小)。
與上述視圖矩陣相同的問題(假設對象是4-d我希望程序放大/縮小 - 接近或在x-4方向上移動)I想要處理物體的空間而不是投影的空間「)
第三:如果上述所有內容在着色器中都不可能,我可以使用C++ amp(或其替代品)來加速執行在主程序中執行這些操作,否則會導致「Draw()」功能的性能下降。
我搜查了網絡和「Stackoverflow」,但我找不到任何使用。
如果你的問題分解成單一的問題,你可能會得到更好的反應。但是FWIW,我敢肯定你不能在着色器中使用指針。 – LarsH 2013-05-03 00:00:02
@LarsH感謝您的評論我不能將它分解成單個問題,因爲它們都是相關的,所有上述問題都來自同一個源,這是超維對象轉換的好地方,還有一件事很多「堆棧溢出」成員傾向於將實際問題視爲非建設性或其他問題,將上述問題分解爲兩個問題,一個問題涉及頂點,另一個問題涉及着色器,最有可能會使問題關閉。 – 2013-05-03 11:15:24
還有一件事:如果我無法將不同長度的頂點傳遞給着色器,並且我想旋轉超立方體,那麼我應該旋轉它的四維頂點,將結果投影到三維空間並每幀重新註冊頂點?會不會導致性能下降? – 2013-05-03 14:35:27