草庐IT

directx-9

全部标签

从win32_computersystem检索到的总物理内存与DirectX工具值不匹配

我正在尝试通过C#中的Win32_operatingsystem类检索机器的总物理内存可用值。以下是我如何检索这个价值的方式。ManagementClassmc=newManagementClass("Win32_ComputerSystem");ManagementObjectCollectionmoc=mc.GetInstances();if(moc.Count!=0){foreach(ManagementObjectMOinmc.GetInstances()){try{computerSystemDetails["TotalPhysicalMemory"]=(MO["TotalPhysi

Unity中Shader的Reversed-Z(DirectX平台)

文章目录前言一、在对裁剪坐标归一化设置NDC时,DirectX平台Z的特殊二、在图形计算器中,看一下Z值反转前后变化1、在图形计算器创建两个变量n和f分别控制近裁剪面和远裁剪面2、带入公式得到齐次裁剪空间下Z值3、进行透视除法4、用1-Z得出Z值反转前的函数图形5、进行Z值反转的原因在这里插入图片描述三、为什么浮点值计算会存在误差前言在之前推导正交相机或透视相机到裁剪空间的矩阵的归一化设置坐标NDC时。我们在DirectX平台下,都进行了Z值的反转。一、在对裁剪坐标归一化设置NDC时,DirectX平台Z的特殊在OpenGL下,我们归一化设置的Z坐标在归一化后范围为[-1,1]在DirectX

DirectX12 3D游戏开发实践(龙书)第四章 Direct3D的初始化

目录Direct3D的初始化预备知识Direct3D概述组件对象模型纹理格式(TexturesFormats)交换链和页面翻转深度缓冲资源与描述符多重采样技术的原理利用Direct3D进行多重采样功能级别DirectX图形基础结构功能支持的检测资源留驻CPU与GPU间的交互命令队列和命令列表CPU与GPU间的同步资源转换命令与多线程初始化Direct3D创建设备创建围栏并获取描述符大小检测对4XMSAA质量级别的支持创建命令队列和命令列表创建交换链创建描述符堆创建渲染目标视图创建深度/模板缓冲区及其视图设置视口设置剪裁矩阵计时与动画性能计时器游戏计时器类总时间应用程序框架D3DApp类Game

DirectX12(D3D12)基础教程(二十一)—— PBR:IBL 的数学原理(3/5)漫反射积分项

目录3.4、漫反射项的重要性采样计算3.4.1、漫反射项的二重积分形式极其近似预积分计算3.4.2、漫反射辐照度积分项的直接积分计算3.4.3、漫反射辐照度积分项的蒙特卡洛积分重要性采样计算3.4、漫反射项的重要性采样计算3.4.1、漫反射项的二重积分形式极其近似预积分计算  进一步来说,因为对漫反射项积分来说κd、c、π\kappa_d、c、\piκd​、c、π等参数对于指定的一点p⃗\vec{p}p​来说是常数,可以提到积分外面,所以其中第一个积分可以进一步推导为:Lod(p⃗,ωo⃗)=κdcπ∫ΩLi(p⃗,ωi⃗)n⃗⋅ωi⃗dωi⃗∵dω=sin⁡(θ)dθdϕ,n⃗⋅ωi⃗=co

c++ - 直线运动卡顿

我使用ID3DXSprite在Direct3D9中创建了简单的、帧无关的、可变时间步长的线性运动。大多数用户不会注意到它,但在某些(包括我的)计算机上,它经常发生,有时会出现很多断断续续的情况。在启用和禁用VSync时会出现卡顿现象。我发现OpenGL渲染器中也会发生同样的情况。这不是float问题。似乎问题只存在于AEROTransparentGlass窗口模式(在全屏、无边框全屏窗口或禁用aero时很好或至少不太明显),当窗口丢失时更糟专注。编辑:帧增量时间不会超出16..17毫秒的范围,即使发生卡顿也是如此。似乎我的帧增量时间测量日志代码被窃听了。我现在修好了。通常启用VSync

c++ - 在 Direct3D (DirectX) 应用程序中禁用 alt-enter

我正在阅读Introductionto3DGameProgrammingwithDirectX10学习一些DirectX,我正在尝试做建议的练习(第4章,对于那些拥有这本书的人)。一个练习要求使用IDXGIFactory::MakeWindowAssociation禁用Alt+Enter功能(切换全屏模式).但是无论如何它都会切换全屏模式,我不明白为什么。这是我的代码:HR(D3D10CreateDevice(0,//defaultadaptermd3dDriverType,0,//nosoftwaredevicecreateDeviceFlags,D3D10_SDK_VERSION,

c++ - 如何使用 stb_truetype 在 directx9 中渲染文本?

如何在C/C++中使用D3D9使用stb_truetype库渲染文本?我在各种论坛/站点和图书馆的文档中查看了d3d9中的一些示例,但没有找到任何示例。 最佳答案 执行此操作的一种方法是创建D3D9纹理,然后将渲染的文本位图加载到其中。然后,您可以像使用任何其他纹理一样使用生成的纹理。#defineSTB_TRUETYPE_IMPLEMENTATION#include"stb_truetype.h"IDirect3DTexture9*LoadTextureFromText(constchar*text){IDirect3DTextu

c++ - 有哪些适合初学者的 DirectX 资源?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6年前。Improvethisquestion我正在学习DirectX作为业余爱好项目的一部分。我一直在为DirectX9寻找一些不错的在线资源(使用C++,如果区别很重要的话),但没有找到任何a)对初学者有用和b)最新的资源。有什么建议吗?

c++ - 在 DirectX 中取消投影屏幕坐标时出现意外结果

为了能够确定用户是否点击了我的任何3D对象,我试图将点击的屏幕坐标转换为一个vector,然后我用它来检查是否有任何三角形被点击。为此,我使用了XMVector3UnprojectDirectX提供的方法,我正在用C++/CX实现所有内容。我面临的问题是,取消投影屏幕坐标所产生的vector与我预期的完全不同。下图说明了这一点:单击发生时的光标位置(以黄色突出显示)在左侧的等距View中可见。我一单击,取消投影产生的vector就会出现在图像中指示的模型后面,作为穿透模型的白线。因此,它不是从光标位置开始并进入等距View中的屏幕,而是出现在一个完全不同的位置。当我在等距View中水平

c++ - 使用 DirectX 捕获屏幕

我知道如何使用GDI来捕获屏幕,但是它非常慢(它几乎不能捕获10fps)我读到DirectX提供了最好的速度。但在我开始学习DirectX之前,我想测试一个示例,看看它是否真的那么快。我找到了这个question提供了一个示例代码来做到这一点:voiddump_buffer(){IDirect3DSurface9*pRenderTarget=NULL;IDirect3DSurface9*pDestTarget=NULL;constcharfile[]="Pickture.bmp";//sanitychecks.if(Device==NULL)return;//gettherendert