精华内容
下载资源
问答
  • dxvk:针对Linux Wine的D3D9,D3D10和D3D11的基于Vulkan的实现
  • DXVK是Direct3D 9至11的基于Vulkan的翻译层,可在LinuxWine上使用。 Direct3D是为Windows构建的图形应用程序编程接口,用于在应用程序中渲染三维图形。 它通常对性能至关重要的应用程序很有用,例如在三维游戏中。...
  • D3D9 vs D3D1x

    千次阅读 2012-07-20 18:05:38
    KlayGE 3.8.0开始正式支持D3D10和D3D11,...本文着重比较了D3D9和D3D10两个插件的性能。由于目前(2009年4月)市面上还没有支持D3D11的硬 件,D3D11插件只能通过D3D11 Level 10在支持D3D10的硬件上执行的,性能也就和D3

    KlayGE 3.8.0开始正式支持D3D10和D3D11,可以在不改任何上层代码的情况下切换D3D9,D3D10,D3D11和OpenGL四个渲染插件。于 是,这给了我们一个比较性能的机会。本文着重比较了D3D9和D3D10两个插件的性能。由于目前(2009年4月)市面上还没有支持D3D11的硬 件,D3D11插件只能通过D3D11 Level 10在支持D3D10的硬件上执行的,性能也就和D3D10几乎相同,遂不必多讨论。

    表1列举了KlayGE现有例子在D3D9和D3D10两插件下得到的fps数据,并由此计算出D3D10的提升。

    运行的平台:Pentium Core2 2.3GHz、4GB DDR2-800、Geforce 8800GT/185.66驱动,操作系统:Vista SP1 64bit。

    表1. 两插件fps对比
    例子 D3D9 (fps) D3D10 (fps) D3D10的提升
    Ascii Arts 1784 1828 2.47%
    Cartoon 961 979 1.87%
    Deferred Shading 150 147 -2.00%
    Depth of Field 152 152 0.00%
    Depth Peeling 406 350 -13.79%
    Distance Mapping 1517 1533 1.05%
    Fractal 1425 1467 2.95%
    GPU Particle System 57 62 8.77%
    Instancing 477 498 4.40%
    Model Viewer 1979 2271 14.75%
    Parallax 3066 3219 4.99%
    Particle System 705 734 4.11%
    Procedural Texture 852 1138 33.57%
    Refract 712 713 0.14%
    Shadow Cubemap 1033 1061 2.71%
    Text 863 910 5.45%
    Vertex Displacement 3734 4012 7.45%
    Video Texture 724 711 -1.80%

    从表1可以看出,在绝大部分情况下,如果算法和效果相同,D3D10的性能要高于D3D9。可见,得益于API设计的巨大进步,D3D10的runtime/driver性能优于D3D9。

    由此可以看出,在Vista下使用D3D10确实有利于性能的提高。在新硬件上,D3D1x更能发挥出硬件的能力。

    在未来的KlayGE中,D3D9和D3D10插件都会被抛弃,只留下D3D11一个D3D插件,通过D3D11 Level 9或D3D11 Level 10来在不支持D3D11的硬件上渲染。对于不支持D3D11的Windows XP,可以使用OpenGL插件。

    展开全文
  • 本逆向安全章节是我业余之间编写的,也借鉴了前辈的经验来给大家做一个简单的文字逆向安全教程,欢迎大家讨论指正,共同学习。禁止非法用途。教程我从最简单的开始给...分析游戏是d3d9还是d3d11 黑屏优化有很多种...

    本逆向安全章节是我业余之间编写的,也借鉴了前辈的经验来给大家做一个简单的文字逆向安全教程,欢迎大家讨论和指正,共同学习。禁止非法用途。教程我从最简单的开始给大家做一个简单的讲解d3d 类的3d游戏和fps游戏黑屏、透视等功能。后面有更多的经验分享给大家。
    讨论 QQ:2273545181 Q群:550839408

    老掉牙的方法:

    1. 分析游戏是d3d9还是d3d11
    2. 黑屏优化有很多种,这里讲的是挂钩d3d虚函数
      DrawPrimitive渲染 虚函数,不能根据函数名称获取函数地址 HOOK?
      DrawIndexedPrimitive渲染
      SetRenderState() 渲染状态
      BeginScene开始渲染
      EndScene结束渲染
      Present显示后置缓冲的动画
      3.分析虚表函数 DrawPrimitive函数内存位置。不同系统可能不同 模块基地址+偏移
      4.HOOK 构造一个FakeDrawPrimitive函数
      5.挂钩

    Drawprimitive函数的入口地址 5F0975F0 mov edi,edi
    D3d9模块基地址 5f040000 LoadLibrary函数获取
    偏移计算=5F0975F0 -5f040000 = 575F0
    公式: Drawprimitive函数地址=模块基地址+偏移

    例子源码(这个方法十分老土,模块名+偏移获取函数,其实我都嫌弃的,很多人也在用,所以我还是说一下吧。先让大家将就一下)

    HMODULE Hm = LoadLibrary("d3d9.dll");
    DWORD addr_real_DrawPrimitive = (DWORD)Hm + 0x575F0; //修改了
    
    CString str;
    str.Format("%X", addr_real_DrawPrimitive);
    //printf("test ADDR  %d\r\n", addr);
    
    DetourTransactionBegin();
    DetourUpdateThread(GetCurrentThread());
    DetourAttach(&(PVOID&)addr_real_DrawPrimitive, MyDrawPrimitive);
    DetourTransactionCommit();
    MessageBox(NULL, str, NULL);
    DetourTransactionBegin();
    DetourUpdateThread(GetCurrentThread());
    DetourDetach(&(PVOID&)addr_real_DrawPrimitive, MyDrawPrimitive);
    DetourTransactionCommit();
    printf("test ADDR  %d\r\n", addr_real_DrawPrimitive);
    技术讨论Q Q:2273545181 Q群:550839408
    

    原来某游戏图片(技术测试):在这里插入图片描述
    hook后的游戏,我么你发觉只是少了登录窗口和文字,没有完整黑屏(技术测试)。在这里插入图片描述方法太out,但是也能基本通过挂钩实现一个简单的功能,不同系统可能不同。后面会讲完整的黑屏优化方法

    展开全文
  • D3D12渲染技术概述

    千次阅读 2018-08-22 09:27:03
    D3D9到D3D12逐步提升,现在很多以前的引擎还是停留在D3D9或者D3D11,D3D12用的比较少,相信不久的将来,引擎使用的D3D API都会更新到D3D12,为了普及D3D API的开发,会做一个系列文章用于介绍D3D12的特色应用。...

    从D3D9到D3D12逐步提升,现在很多以前的引擎还是停留在D3D9,D3D12用的比较少,相信不久的将来,引擎使用的D3D API都会更新到D3D12,为了普及D3D API的开发,会做一个系列文章用于介绍D3D12的特色和应用。由浅入深,逐步讲解,不论做游戏还是做VR,AR都会涉及到渲染,市场上很多公司会针对自己的项目封装一些图形接口用于渲染,掌握D3D12渲染技术是必须的,回到正题,现在市面上或者自研引擎已经进行了DX API的升级,比如Unity引擎已经更新到了D3D11,下面我们先将D3D11和D3D12做一个对比,通过比较从总体上先对D3D12渲染技术有大概的认识,它们最大的区别还是渲染管线。

    渲染管线

    先看看D3D11的渲染管线:
    这里写图片描述

    再看看D3D12的渲染管线:
    这里写图片描述

    二者最大区别是:多了一个Root signature,它表示的是CBV/SRV/UAV/Sampler的布局,比如一组VS/PS,VS用了2个CBV,PS用了1个CBV、2个SRV、1个Sampler,这样的布局就能生成一个专用的root signature。root signature和view的值无关,只和布局有关,所以其实是可以共享的。 另外,Heap是D3D12新增的概念,不管是CBV、SRV还是UAV,都可以把handle放到heap里。如此一来,只要通过设置heap就能一次切换一批CBV/SRV/UAV/Sampler,而不需要一个一个设置,降低了CPU开销,就好像普通程序里常见指针数组。在此给读者介绍一下关于CBV/SRV/UAV/Sampler,如下图所示:
    这里写图片描述
    其中SRV表示的是shader-resource views,这些都是一些缩写。

    多线程

    我们先看看多线程资源的处理方式,如下图所示:
    这里写图片描述
    对于GPU的提升也是非常明显的,如下图所示:
    这里写图片描述
    为了解释上面的内容,我们看看D3D12的另一个功能 Command List,它的作用见下图所示:
    这里写图片描述
    CPU向GPU中加入一组Command到Queue中,GPU并不是立即执行,因为GPU可能忙于处理以前的Command,如果Command的Queue空了,那GPU也是处于空闲等待状态,如果Command的Queue太慢了,CPU要在某个点处于等待状态,等GPU去执行Command,这种情况是我们不愿意看到的,我们还是希望CPU和GPU能够协同工作,充分调动起来,这里就要用到D3D12的另一个特性Fence,专门用于协调CPU与GPU的,CPU 等待 GPU 处理完所有在隔离点之前的指令,然后刷新指令队列。

    Draw Call 模型

    我们测试游戏通常会看Draw Call的运行时显示的数量,D3D12有自己的Draw Call 模型,它跟以前相比最大的区别是:

    • 之前的多线程渲染模型是由一个单独的渲染线程用来提交Draw/Dispatch调用,其他一个或多个线程处理游戏逻辑。
    • 新的多线程模型,每个线程都可以提交Draw/Dispatch调用。

    它的模型如下图所示:
    这里写图片描述

    提交Draw Call的具体执行步骤:
    1、创建一个或多个3D/计算队列
    2、创建一个或多个命令列表
    3、为每个命令列表记录Draw Call
    4、执行命令列表

    • 小结:

      学习D3D12我们要先了解它的一些特性,后面我们会先从基础方面谈起,逐步深入,学习D3D API对于学习引擎有非常重要的帮助,可以帮助我们优化引擎,增加模块功能,封装功能模块库等等。

    展开全文
  • rtsp.zip接收端

    2020-04-26 17:55:07
    调用opengl和d3d显示,硬解码音视频,调用opengl和d3d9和d3d11显示,c++在vs平台的,
  • DirectDraw,D3D3 / 5/6/7,D3D8和D3D9也都可用 我认为与原始库具有良好的兼容性。 您可以为GlideDirectX强制设置分辨率甚至MSAA,通过硬连线的低分辨率支持可以真正改善游戏的外观。 对于某些确实需要这种游戏的...
  • 游戏模式要求应用程序调用ParsecHostSubmitFrame函数之一(支持OpenGL,D3D9和D3D11)和ParsecHostSubmitAudio 。 通过ParsecHostPollInput轮询输入,从而像暴露在本地一样暴露输入事件。 在游戏模式下,Parsec只能...
  • 开发了一个cpp项目,用于挂钩各种图形库,例如:d3d9,d3d10,d3d11,d3d12,gdi,gdi +,openglvulkan。 dllmain包含所有列出的库的示例,但gdigdi +除外,因为尚未实现所有功能。 例子 用法 包含的头文件包含...
  • 这项工作已经上游,并在那里继续发展 此仓库仅适用于跟踪器上的其余问题 DXVK ... 通过检查应用程序目录中是否存在日志文件d3d11.log或启用HUD,来验证您的应用程序使用DXVK而不是wined3d。 为了从前
  • 带有ESP8266 MCUArduino IDE的pedrail 1.5 所有超频模块 ESP8266 L6205 GPIO02 = D8 D13 = B机方向 GPIO12 = D5 D11 = B机动力 GPIO16 = D7 D12 = A机方向 GPIO13 = D4 D3 = A机动力 OCrobot ESP8266...
  • rtsp 简单的rtsp播放器,实现了rtp over tcp方式收流,h264、g711、aac等音视频解码,音频渲染使用xaudio,视频渲染支持d3d9d3d11和opengl。
  • 大量的错误集中在了enc-amf模块,其中的api-base.hpp,api-d3d9.hpp,api-d3d11.hpp为主要出错对象,百度之后发现是因为其中使用wincrypt.h头文件,但是并没有使用windows.hwindef.h头文件,由于api-d3d9.hpp,api...

    今天在编译obs的时候出现了大量的wincrypt.h头文件中的报错

    大量的错误集中在了enc-amf模块,其中的api-base.hpp,api-d3d9.hpp,api-d3d11.hpp为主要出错对象,百度之后发现是因为其中使用wincrypt.h头文件,但是并没有使用windows.h和windef.h头文件,由于api-d3d9.hpp,api-d3d11.hpp包含了api-base.hpp头文件,所以只需要在api-base.hpp中添加上windows.hwindef.h头文件就可以了。

    注意需要将windows.h和windef.h加到最前

    注意还需要在另外两个头文件中调整api-base.hpp的包含位置

     

    展开全文
  • 静态编译与MD 还是 MT无关。 静态编译默认输出的 .lib后缀,可以在vs里改的。 msvcrtd.lib crypt32.lib secur32.lib ws2_32.lib dmoguids.lib ...d3d9.lib d3d11.lib dxgi.lib dxva2.lib ow..
  • 一.LENGTH计算 ...校验码的计算:D11D10D9D8+D7D6D5D4+D3D2D1D0,求和后模16的余数取反加1。例如: 假设INFO项的ASCII码字节数为18,即LENID = 0000 0001 0010。 D11D10D9D8+D7D6D5D4+D3D2D1D0 = 000
  • arduinods1302的基于lcd12864闹钟 按键可调时间 基于arduino nano 很久以前的一个项目了。最近才把他完善。 效果图 接线图、、、、、、其他电路连接请自行搜索其他模块详情 arduino lcd12864 ds1302 d2 d0...
  • OGRE介绍 Ogre(Object-orientedRendering Engine ),是一个面向对象的图形引擎。 产品特点 完全面向对象. 对GLDX进行封装. 可扩展的框架 【插件系统】: 需要的功能以插件的形式添加进系统扩展...D3D9 D3D11 Op...
  • DXUT11框架浅析(6)--功能函数

    千次阅读 2013-09-11 22:48:54
    DXUT11源码浅析(6)Core—辅助函数         在DXUT.h中,除了提供一些最基础的使用D3D的函数,还提供了很多功能函数,简化开发。...切换全屏 / D3D9的 REFHAL设备类型 / D3D11的WARPHARDWARE设备切换。
  • d3d9.dll d3d11.dll ddraw.dll dinput.dll dinput8.dll(x86x64) dsound.dll(x86x64) msacm32.dll msvfw32.dll version.dll(x86x64) wininet.dll(x86x64) winmm.dll xlive.dll ...
  • BatchRenderer-源码

    2021-04-29 12:03:43
    它相对便携,并且已被证实可以与D3D11D3D9,OpenGL,Op​​enGL ES(Android,iOS,WebGL)PS4一起使用。 如何使用 导入然后将BatchRenderer组件添加到适当的对象。 将要绘制的模型设置为网格。顶点不多的模型是...
  • 要求 qUINT是用于ReShade 4的着色...Optional如果不使用默认的ReShade着色器包或将其放置在其他位置),请将.\Shaders添加到ReShade .ini文件的EffectSearchPaths中(与ReShade dll,d3d9.ini-d3d11.ini,dxgi相同的名
  • 它具有广泛的测试套件,包括使用从HLSL编译的着色器的,以及适用于Windows的“四个API测试”,其中具有同时运行同一着色器的D3D9D3D11,GL2GL3.1: 主测试套件使用glslangValidator检查大多数转换后的代码,并...
  • CubismNativeSamples-源码

    2021-05-05 10:31:04
    立体主义本地样本 这是显示Live2D Cubism 4编辑器输出的模型的应用程序的示例实现。 与Cubism Native FrameworkLive2D Cubism Core结合使用。 执照 使用此SDK之前,请检查。... ├─ D3D11 # Di
  • :20084000BDE8104080B5204890F82C10002000F0FDF817480068017A082906D11C494FF44B :2008600080520A80194910220A80007A092801D1012002BD002002BD70B50E4909780022A3 :20088000104B48F68F760BE0D4B253F...
  • 以下图为例,假设要根据C列对D列中被选中单元进行求和,即对D列中对应序号为1、4、57的单元进行求和,则在D11中输入 =SUMIF(C3:C9, "✓", D3:D9) 其中,“C3:C9”代表条件判断范围,“✓”代表条件取值,“D3:D9...
  • 它使用13位数字d1d2d3d4d5d6d7d8d9d10d11d12d13。最后一位数字d13是校验,是使用下面的公式从其他数字中计算出来的: 10 - (d1 + 3d2 + d3 + 3d4 + d5 + 3d6 + d7 + 3d8 + d9 + 3d10 + d11 + 3d12) % 10 如果校验...
  • 物联网开发职业路线

    2020-07-05 16:12:50
    D9函数2 D10linux C语言高级编程 D11Makefile L2 数据结构 D1数据结构引入 D2线性表之顺序表(上) D3线性表之顺序表(下) D4线性表之单链表(上) D5线性表之单链表(下)
  • ISBN-10

    2020-03-28 02:36:31
    d11+d22+d33+d44+d55+d66+d77+d88+d9*9)%11如果校验为10,那么按照ISBN-10的习惯,最后一位应该为X,读取一个整数输入,按照提示输入前九个数 package Test02; /* * ISBN-10由十个个体整...

空空如也

空空如也

1 2 3
收藏数 41
精华内容 16
热门标签
关键字:

d3d9和d3d11