metal

    2熱度

    2回答

    我傳遞一個統一的緩衝區到頂點和片段着色器。 let uniformBuffer = device.makeBuffer(length: 4096, options: []) renderEncoder.setVertexBuffer(uniformBuffer, offset: 0, at: 1) renderEncoder.setFragmentBuffer(uniformBuffer,of

    2熱度

    1回答

    我目前正在爲一款遊戲製作簡單的用戶界面,並繪製每個需要使用2個流水線狀態(每個相同頂點着色器)的按鈕。一個爲邊界繪製線條,使用靜態顏色片段着色器,另一個使用漸變漸變繪製按鈕的內部。我想知道如果我需要兩個不同的渲染指令編碼器,每一個管道,或者如果我能做到以下幾點: let encoder = command.makeRenderCommandEncoder(descriptor: renderPas

    0熱度

    1回答

    我當時正在將抖動應用於簡單的彩色四邊形,並發現了一個奇怪的問題。我有一個片段着色器應該計算一些uv抖動並返回抖動的顏色。這在紋理四邊形上工作正常,但奇怪的是,當我從我的inVertex訪問顏色數據時,uv座標更改爲一些奇怪的值,並且y值似乎映射到了軸的x。我將嘗試說明當我更改片段着色器代碼的內容時會發生什麼。 fragment float4 fragment_colored_dithered(Co

    3熱度

    1回答

    什麼是從MTKView捕獲幀的最有效方法?如果可能的話,我想實時保存幀中的.mov文件。是否可以渲染成AVPlayer框架或其他? 這是目前使用此代碼繪圖(基於@warrenm PerformanceShaders project): func draw(in view: MTKView) { _ = inflightSemaphore.wait(timeout: DispatchTim

    2熱度

    1回答

    我假設顏色附件存在於Metal以外的其他API中(我確實知道OpenGL),但我對圖形編程並不熟悉,我想知道彩色附件的概念是什麼。我所做的所有繪圖都涉及在顏色附件的數組中的第一個上設置屬性,然後進行渲染過程。顏色附件字面上只是一個緩衝區?在渲染過程中使用多個單獨的點是否將相同的圖像繪製到多個緩衝區/紋理? 編輯:流水線狀態也有顏色附件陣列,就像我剛剛回想的那樣。如果它們本質上是緩衝區,那麼與設置管

    3熱度

    3回答

    float4 position [[position]];在下面的代碼段中做了什麼? #include <metal_stdlib> using namespace metal; struct Vertex { float4 position [[position]]; float4 color; }; vertex Vertex vertex_main(devi

    0熱度

    1回答

    這種金屬着色器是根據設在這裏 http://metalkit.org/2016/10/01/using-metalkit-part-2-3-2.html 它把頁面上的第3圖像中看到的淡黃色和藍色漸變的教程。 我這個着色器的目標是得出這樣使用片段/頂點對,而不是計算着色器。 此着色器的結果是由MTKView的在MacOS的夫特遊樂場一個子類可見。 着色器代碼: #include <metal_std

    5熱度

    1回答

    試圖弄清楚我如何在無形的平面上渲染陰影,以便我的sceneView的背景顯示出來。 THREE.js有一個ShadowMaterial正是這樣做 - 只有陰影被渲染。 當前的想法是製作一個看起來很直觀的定製金屬着色器,但我不確定如何去掉地板以顯示除陰影之外的所有東西。 這裏有一個影子捕手的例子:https://knowledge.autodesk.com/search-result/caas/sf

    1熱度

    1回答

    我一直在嘗試將Apple的MetalBasicTessellation項目轉換爲iPad Air 3上的swift 3,但迄今爲止一直不成功。令人沮喪的是,這個項目帶有一個iOS實現(用ObjectiveC編寫,並且是一個快速的操場),但沒有實現。 我得到的代碼進行編譯,但未能與下面的錯誤在我的iPad上運行: 2017-05-14 14:25:54.268400-0700 MetalBasicT

    0熱度

    1回答

    我一直在試圖將Apple的MetalBasicTessellation項目轉換爲運行iOS 10.3.1的iPhone 6s上的swift 3工作。一切都沒有錯誤的編譯,但在我的iPhone上運行時,我得到的,當我確定renderCommandEncoder以下錯誤: validateAttachmentOnDevice:347: failed assertion `MTLRenderPassDe