direct3d11

    0熱度

    1回答

    我目前有3個紋理在我的地形項目中使用斜坡量進行混合。我通過對每個紋理進行採樣,確定斜率量並基於兩個紋理之間的lerp設置紋理顏色來完成此操作。這是該代碼段從我的像素着色器: static const float TEX_LOW_BOUND = 0.4f; static const float TEX_HIGH_BOUND = 0.7f; ... float4 texColour; f

    0熱度

    1回答

    這可能嗎?這個想法是將場景渲染爲虛擬攝像頭(虛擬攝像頭本身是微不足道的部分)。我的工作是基於DirectShow SDK的PushSource示例和D3D11遊戲示例。 我知道我已經可以將DIB字節複製到IMediaStream示例提供的指針,但是有沒有辦法將它用作渲染目標?或者我只是更好地脫離屏幕以某種方式渲染並鎖定D3D渲染目標並將其字節複製過來?如果是這樣,我該如何正確初始化Direct3D

    0熱度

    2回答

    如果我想清除Direct3D 11中的整個深度/模板視圖,我可以輕鬆地撥打ID3D11DeviceContext::ClearDepthStencilView。 Direct3D 11.1增加了對清除的矩形部分的支持,使用ID3D11DeviceContext1::ClearView呈現目標的視圖。 但是我看不到在Direct3D 11中只清除深度/模板視圖的一部分,缺少在所需區域渲染四邊形的問題

    2熱度

    1回答

    當我嘗試從內存加載着色器結果時,編譯器會說:一個或多個參數無效。着色器編譯成功,但在內存中的D3DCompileFromFile()命令似乎是不正確的,ID3DBlob接口由於某種原因得不到正確的值。 ID3DBlob* pBlobFX = NULL; ID3DBlob* pErrorBlob = NULL; hr = D3DCompileFromFile(str, NULL, NULL, N

    2熱度

    1回答

    我正在研究C++和Direct3D11中的遊戲引擎,現在我想在場景中添加一個可變數量的燈。到目前爲止,我設法在着色器程序中添加並渲染已知和編碼的計數的簡單燈光。 在shader.fx: static const int LightsCount= 4; struct NF3D_LIGHT { // Members... }; cbuffer Light : register(b

    0熱度

    1回答

    我目前正在嘗試在HLSL中使用Blinn-Phong底紋的遊戲中實現點光源。我遵循的教程鏈接到here。 我現在的代碼是: struct VS_INPUT { float4 Position : POSITION; float3 Normal : NORMAL; float2 TexCoord : TEXCOORD; }; struct VS_OUTPUT

    3熱度

    1回答

    我正在C++/D3D11下創建一個用於教授基本圖形概念的簡單框架。該框架需要通過簡單的界面功能(例如Putpixel(x,y,r,g,b))直接操作屏幕光柵內容。 在D3D9下,這是一個相對簡單的目標,它通過在堆組成一個表面的堆上分配一個表面緩衝區來實現。然後,後臺緩衝區將被鎖定,並且堆緩衝區的內容被傳送到後臺緩衝區。據我瞭解,在D3D11下無法直接從CPU訪問後緩衝器。必須準備一個紋理資源,然後

    0熱度

    1回答

    當調用IDXGISwapChain::ResizeBuffer()時,調用失敗並從HRESULT 0x887a0001返回此錯誤,否則返回DXGI_ERROR_INVALID_CALL。 在此通話之前會發生什麼,我撥打ID3D11DeviceContext::ClearState()併發布ID3D11RenderTargetView和ID3D11DepthStencilView。 上面的視圖是綁定

    3熱度

    2回答

    我有一個HLSL着色器定義了一些資源,比如一個常數緩衝: cbuffer MyCB : register(b0); 如果我編譯我着色器,那麼我就要能夠通過反射API查詢寄存器。但有沒有可能更改寄存器(例如,到b3)在編譯着色器blob中以類似的方式,你可以分配綁定點到資源編譯的OpenGL程序?

    3熱度

    1回答

    對於D3D編程的新手,應該直接學習D3D12還是在D3D12之前需要D3D11? 假設從頭開始和C++的正確知識,我該走哪條路?