- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我一直在关注 Microsoft Direct3D11 教程,但使用的是 C# 和 SlimDX。我正在尝试设置常量缓冲区,但不确定如何创建或设置它。
我只是尝试使用常量缓冲区设置三个矩阵(世界、 View 和投影),但我在创建、数据输入和将其传递给着色器的每个阶段都遇到困难。
MSDN 上的 HLSL(我基本上复制了它)是:
cbuffer ConstantBuffer : register( b0 )
{
matrix World;
matrix View;
matrix Projection;
}
MSDN 上的 C++ 代码是:
ID3D11Buffer* g_pConstantBuffer = NULL;
XMMATRIX g_World;
XMMATRIX g_View;
XMMATRIX g_Projection;
//set up the constant buffer
D3D11_BUFFER_DESC bd;
ZeroMemory( &bd, sizeof(bd) );
bd.Usage = D3D11_USAGE_DEFAULT;
bd.ByteWidth = sizeof(ConstantBuffer);
bd.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
bd.CPUAccessFlags = 0;
if( FAILED(g_pd3dDevice->CreateBuffer( &bd, NULL, &g_pConstantBuffer ) ) )
return hr;
//
// Update variables
//
ConstantBuffer cb;
cb.mWorld = XMMatrixTranspose( g_World );
cb.mView = XMMatrixTranspose( g_View );
cb.mProjection = XMMatrixTranspose( g_Projection );
g_pImmediateContext->UpdateSubresource( g_pConstantBuffer, 0, NULL, &cb, 0, 0 );
有人知道如何将其翻译成 SlimDX 吗?或者,如果有人知道任何 SlimDX 教程或资源也很有用。
谢谢。
最佳答案
类似于此的东西应该可以工作:
var buffer = new Buffer(device, new BufferDescription {
Usage = ResourceUsage.Default,
SizeInBytes = sizeof(ConstantBuffer),
BindFlags = BindFlags.ConstantBuffer
});
var cb = new ConstantBuffer();
cb.World = Matrix.Transpose(world);
cb.View = Matrix.Transpose(view);
cb.Projection = Matrix.Transpose(projection);
var data = new DataStream(sizeof(ConstantBuffer), true, true);
data.Write(cb);
data.Position = 0;
context.UpdateSubresource(new DataBox(0, 0, data), buffer, 0);
关于c# - 使用 SlimDX 设置常量缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4962225/
我的应用程序不时初始化一堆 DirectX 内容并加载场景,有时包含一些大纹理(每个纹理最多 200-300 MB)。起初,一切正常,但过了一会儿 FromMemory()只是停止工作,但仅适用于大纹
我想在 SlimDX(Direct3D11) 中加载一个预编译的着色器,但我不知道该怎么做。 我搜索了这个主题,只找到了 C++ native 版本的 DirectX 的解决方案。似乎是/Gch 编译
我创建了新窗口,并在新线程上使用了 SlimDX.Windows.MessagePump.Run。我怎样才能停止这个循环? 最佳答案 如果您将表单作为参数传递给 MessagePump.Run,您
我有以下代码来实例化一个常量缓冲区并将其绑定(bind)到像素着色器。 ConstantBuffers.EveryFrame 是 ConstantBuffers 类中的一个结构,它包含我需要在每帧基础
如何使用 SlimDX 的 Direct2D 接口(interface)绘制三角形,三角形顶点以像素坐标给出? 最佳答案 我们最近刚刚在我们的存储库中添加了一个涵盖该主题的示例。相关的源文件是here
我最近做了一个游戏截图应用。 首先,我使用 GDI 来捕获游戏,但为此我不得不在 win7/vis 上禁用 aero,而且我在 windows XP 上遇到了一些问题。 当我决定使用 DirectX
我正在尝试使用 SlimDX 渲染线框 3D 模型。 谷歌搜索后我只找到了高级主题,没有找到如何在 SlimDX 中绘制线框。他们说我必须使用着色器才能做到这一点。 由于我是 DirectX 的新手,
我一直在关注 Microsoft Direct3D11 教程,但使用的是 C# 和 SlimDX。我正在尝试设置常量缓冲区,但不确定如何创建或设置它。 我只是尝试使用常量缓冲区设置三个矩阵(世界、 V
我遇到了 SlimDX March SDK 的问题(我相信是 DXSDK11 June 2010)。问题是,每当我将附加深度 View 转为输出合并状态时,我都不会在屏幕上看到任何输出。我将我的代码与
这是我在 StackOverflow 上遇到的第一个问题,万岁!我可以诚实地说,我每天都使用 StackOverflow 来处理我的工作和个人编程谜题。 99.9% 的情况下,我实际上也在这里找到了我
好的 - 我是 SlimDX、DirectX 和一般图形编程的新手,我需要加快速度。 我正在尝试开发一个原型(prototype)应用程序来可视化和调试我最终将在非图形应用程序中使用的数据。 我已经学
您好,我在使用 SlimDX 正确渲染 Sprite 时遇到了问题。它的绘制有点像 .NET Drawing DrawImageUnscaled 所做的那样。我没有使用任何转换。 初始化: Vecto
我知道这里有很多关于在 XNA 和 SlimDX 之间进行选择的问题,但这些都与游戏编程有关。 一点背景知识:我有一个根据 XML 描述渲染场景的应用程序。目前我正在使用 WPF 3D,这主要是有效的
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
有没有基于 SlimDX 框架的主要游戏或开源游戏?我知道它几乎只是 DirectX 之上的包装器,但看到它在成熟的环境中使用仍然很有趣。 我也在寻找游戏背后的某种故事:关于如何选择框架、存在哪些陷阱
我没能找到这方面的文档,但它可能非常简单。我有一个需要更新变量的像素着色器。我唯一接近的是 ConstantTable,但它在 Direct3D9 下,而不是我正在使用的 Direct3D11。 将
我使用 ffmpeg 解码视频文件,解码后得到 YUV 图像。 如何使用 SlimDX/DirectX 将此 YUV 图像显示为表面(或纹理?)的覆盖? 谢谢。 最佳答案 您可以使用颜色格式 YUV
我们如何使用 slimdx n c# 编码来编写媒体播放器 最佳答案 尝试借用this guy's code ...您必须从 VB 翻译它,但似乎您要查找的大部分内容都在那里。 关于c#-3.0 -
我想使用 SlimDX (DirectX 11) 在 WPF 中呈现图像的内容。 问题是我找不到将 SwapChain 链接到 D3DImage 的方法。 (DirectX 11 示例使用 SlimD
我们有一个目前使用 DirectX11 SlimDX 的项目,希望将其移至 SharpDX。然而,这个项目使用了 SlimDX 的效果框架,据我所知,DirectX11 不再正确支持它。但是,我找不到
我是一名优秀的程序员,十分优秀!