
DirectX技术
BugattiEngine
这个作者很懒,什么都没留下…
展开
-
DirectX11,DirectX12,OpenGL,Vulkan学习资料
因为考虑到DirectX11和DirectX12的编程思路差异过大,所以分开归类DirectX113d_game_programming_with_DirectX11.pdf4-Introduction to Multithreaded rendering and the usage of Deferred Contexts in DirectX 11.pdfDirect3D_Progra...原创 2020-03-04 19:25:48 · 1465 阅读 · 1 评论 -
Quaternion基于角度的相加
差异的角度转成quat 可以通过Quat::Identity().Slerp(angular)获取差异quat原始Quat =差异quat* 原始Quat就得到了相加后的quat了原创 2019-03-14 14:36:59 · 1275 阅读 · 0 评论 -
HLSL中Texture的操作函数
最常用的一个函数是SampleSample( sampler_state S, float Location [, int Offset] );sampler_state 可以从外部的buffer传过来,也可以是hlsl内定义,一般情况下都选择从外部设置进行共享。Location应该穿入的是uv数据,不同的图片类型有不同的uv类型Texture-Object Type Parameter ...原创 2019-01-30 15:48:53 · 4105 阅读 · 0 评论 -
SampleState 的坑
在开发VR畸变的时候发现无论如何修改代码,判断超出uv边界discard,总是会残留边角,最后尝试修改下 D3D11_SAMPLER_DESC sampDesc = {};sampDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR;sampDesc.AddressU = D3D11_TEXTURE_ADDRESS_BORDER;sampDesc.Ad...原创 2019-01-08 15:49:07 · 606 阅读 · 0 评论 -
DirectX中不同的Device或者Context使用共享资源
在游戏中,经常都提供我们可以切换DirectX版本的,而且在编写一些渲染插件的时候,也会遇到不同的Device或者Context使用相同的资源,这种情况下,如果不将资源设为共享而直接调用,就会因为抢占资源而导致Crash。使用资源的方法//创建共享资源并设置MiscFlags=D3D11_RESOURCE_MISC_SHARED,然后获取SharedHandle.D3D11_TEXTURE2...原创 2018-12-10 11:10:06 · 3296 阅读 · 2 评论 -
顶点数和基本几何体的数量关系
UINT32 RenderAPI::vertexCountToPrimCount(DrawOperationType type, UINT32 elementCount) { UINT32 primCount = 0; switch (type) { case DOT_POINT_LIST: primCount = elementCount; break; c...原创 2018-12-05 18:08:57 · 784 阅读 · 0 评论 -
Perspective的矩阵计算方法
高通VR里面的通用透视矩阵计算方法 static public Matrix4x4 Perspective(float left, float right, float bottom, float top, float near, float far) { float x = 2.0F * near / (right - left); float y = 2.0F * ne...原创 2018-11-28 18:13:11 · 984 阅读 · 0 评论 -
DirectX编程中常见崩溃总结
1.在该传入非空的地方传入了空指针。通常是因为视图调用某个函数,但是Buffer或者资源没有初始化。2.在该传入空指针的地方传入了已经存在资源的指针。一般常见于各种Create函数3.释放资源的时候该资源其实已经被其他地方释放了,可能并非是该资源本身,而是已经被其他的资源给释放了。例如VRWorks里面的 ID3DLateLatchObject就会自动释放对应的所有Buffer资源,试图释放其...原创 2018-11-27 11:04:45 · 775 阅读 · 0 评论 -
3D空间中的视野,世界,视图,投影,World,View,Projection的作用和区别
D3D11_VIEWPORT vp; vp.Width = (FLOAT)m_bufferWidth; vp.Height = (FLOAT)m_bufferHeight; vp.MinDepth = 0.0f; vp.MaxDepth = 1.0f; vp.TopLeftX = 0; vp.TopLeftY = 0; m_context->RSSetView...原创 2018-11-23 10:44:16 · 2000 阅读 · 0 评论 -
DirectX和D3DX的区别
“Direct3D”和“D3DX”之间的区别一直有,但它一直比较模糊。 D3DX从Windows8 SDK开始就已经被弃用,可以视为DirectX 的一个扩展包。D3DX的主要替代库DirectXTK,DirectXTex,DirectXMesh。 这些都支持Direct3D 11.x.平台包括Windows 8.0,Windows 8.1,Windows phone 8.x,Xbox,Win3...原创 2018-11-16 18:00:24 · 2128 阅读 · 0 评论 -
从零开始开发3D游戏引擎 - 在QtWidget中进行Direct3D11渲染,并捕捉Windows消息
DirectX 渲染创建一个继承QWidget的类,重写paintEvent,resizeEvent但是仅仅这样还不够,画面会一直闪烁,需要重写以下函数virtual QPaintEngine paintEngine() const { return NULL; }*并设置窗口属性this->setAttribute(Qt::WA_PaintOnScreen, true);thi...原创 2018-11-16 17:01:12 · 2365 阅读 · 0 评论 -
hlsl着色器的结构
HLSL从入门到精通第一节,hlsl的结构一般情况下需要写的Shader分为VertexShader,PixelShader两种,可以写到一个fx文件里面单独的hlsl文件以hlsl为后缀,添加到VS工程后,默认就会进行编译,如果不想每次编译工程的时候都编译生成,可以右击属性配置,在常规中选择 从生成中排除注意,选择对应的着色器类型和入口点名称,否则编译会报错其次在输出文件一栏可以...原创 2018-11-14 12:00:20 · 766 阅读 · 1 评论