欢迎来到皮皮网官网

【微信小程序题目测试源码】【网站源码开发教程】【遍历指标公式源码】directx源码下载

时间:2024-12-23 08:41:48 来源:mud源码

1.DirectX 基础
2.Renderdoc DirectX ByteCode 转 HLSL 插件 修复说明,码下DXBC/HLSL 逆向反汇编
3.WorldWind编译生成,码下解决乱码等问题
4.Directx11/12添加imgui踩坑记
5.求个《directx角色扮演游戏编程》配套光盘镜像文件

directx源码下载

DirectX 基础

       // DemoLight.cpp:

       //

       #include <windows.h>

       #include <d3dx9.h>

       #include <mmsystem.h>

       //#pragma comment (lib,码下 "d3d9.lib")

       //#pragma comment (lib, "d3dx9d.lib")

       //#pragma comment (lib, "winmm.lib")

       //#pragma comment (lib, "d3dxof.lib")

       //#pragma comment (lib, "dxguid.lib")

       struct CUSTOMVERTEX {

        D3DXVECTOR3 position;

        D3DXVECTOR3 normal;

       };

       #define D3DFVF_CUSTOMVERTEX ( D3DFVF_XYZ | D3DFVF_NORMAL)

       LPDIRECT3D9 d3d9;

       LPDIRECT3DDEVICE9 d3ddev;

       LPDIRECT3DVERTEXBUFFER9 d3dvb;

       void InitD3D( HWND hwnd)

       {

        d3d9 = Direct3DCreate9( D3D_SDK_VERSION);

        D3DPRESENT_PARAMETERS d3dpp;

        ZeroMemory( &d3dpp, sizeof( d3dpp));

        d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;

        d3dpp.EnableAutoDepthStencil = true;

        d3dpp.AutoDepthStencilFormat = D3DFMT_D;

        d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;

        d3dpp.Windowed = true;

        d3d9->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &d3ddev);

        d3ddev->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE);

        d3ddev->SetRenderState( D3DRS_ZENABLE, true);

       }

       void InitGeometry()

       {

        CUSTOMVERTEX* pVertices;

        d3ddev->CreateVertexBuffer( * 2 * sizeof( CUSTOMVERTEX), 0, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, &d3dvb, NULL);

        d3dvb->Lock( 0, 0, ( void**)&pVertices, 0);

        for( int i=0; i<; i++) {

        float theta = 2 * D3DX_PI * i / ;

        pVertices[2 * i].normal = D3DXVECTOR3( sinf( theta), -1.0f, cosf( theta));

        pVertices[2 * i].position = D3DXVECTOR3( sinf( theta), 0.0f, cosf( theta));

        pVertices[2 * i + 1].normal = D3DXVECTOR3( sinf( theta), 1.0f, cosf( theta));

        pVertices[2 * i + 1].position = D3DXVECTOR3( sinf( theta), 0.0f, cosf( theta));

        }

        d3dvb->Unlock();

       }

       void SetupMatrix()

       {

        D3DXMATRIXA matWorld;

        D3DXMatrixIdentity( &matWorld);

        D3DXMatrixRotationX( &matWorld, timeGetTime() / .0f);

        d3ddev->SetTransform( D3DTS_WORLD, &matWorld);

        D3DXVECTOR3 vEyePt( 0.0f, 0.0f, -5.0f);

        D3DXVECTOR3 vLookatPt( 0.0f, 0.0f, 0.0f);

        D3DXVECTOR3 vUpVec( 0.0f, 1.0f, 0.0f);

        D3DXMATRIXA matView;

        D3DXMatrixIdentity( &matView);

        D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec);

        d3ddev->SetTransform( D3DTS_VIEW, &matView);

        D3DXMATRIXA matProj;

        D3DXMatrixIdentity( &matProj);

        D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI / 4, 1.0f, 1.0f, .0f);

        d3ddev->SetTransform( D3DTS_PROJECTION, &matProj);

       }

       void SetupLights()

       {

        D3DMATERIAL9 mtrl;

        ZeroMemory( &mtrl, sizeof( mtrl));

        mtrl.Ambient.a = mtrl.Diffuse.a = 1.0f;

        mtrl.Ambient.b = mtrl.Diffuse.b = 0.0f;

        mtrl.Ambient.g = mtrl.Diffuse.g = 1.0f;

        mtrl.Ambient.r = mtrl.Diffuse.r = 1.0f;

        d3ddev->SetMaterial( &mtrl);

        D3DLIGHT9 light;

        ZeroMemory( &light, sizeof( light));

        light.Type = D3DLIGHT_DIRECTIONAL;

        light.Position = D3DXVECTOR3( -5.0f, 0.5f, -5.0f);

        light.Direction = D3DXVECTOR3( 0.0f, 0.0f, 0.0f);

        light.Ambient.r = light.Diffuse.r = 1.0f;

        light.Ambient.g = light.Diffuse.g = 1.0f;

        light.Ambient.b = light.Diffuse.b = 0.0f;

        light.Range = .0f;

        d3ddev->SetLight( 0, &light);

        d3ddev->LightEnable( 0, true);

        d3ddev->SetRenderState( D3DRS_AMBIENT, 0x);

       }

       void Render()

       {

        d3ddev->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB( 0, 0, ), 1.0f, 0);

        d3ddev->BeginScene();

        SetupMatrix();

        SetupLights();

        d3ddev->SetStreamSource( 0, d3dvb, 0, sizeof( CUSTOMVERTEX));

        d3ddev->SetFVF( D3DFVF_CUSTOMVERTEX);

        d3ddev->DrawPrimitive( D3DPT_TRIANGLELIST, 0, );

        d3ddev->EndScene();

        d3ddev->Present( NULL, NULL, NULL, NULL);

       }

       void Cleanup()

       {

        d3dvb->Release();

        d3ddev->Release();

        d3d9->Release();

       }

       LRESULT CALLBACK windowProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)

       {

        switch( msg) {

        case WM_DESTROY:

        Cleanup();

        PostQuitMessage( 0);

        return 0;

        }

        return DefWindowProc( hwnd, msg, wParam, lParam);

       }

       int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)

       {

        WNDCLASSEX wce;

        wce.cbClsExtra = 0;

        wce.cbSize = sizeof( wce);

        wce.cbWndExtra = 0;

        wce.hbrBackground = ( HBRUSH) GetStockObject( WHITE_BRUSH);

        wce.hCursor = LoadCursor( NULL, IDC_ARROW);

        wce.hIcon = LoadIcon( NULL, IDI_APPLICATION);

        wce.hIconSm = wce.hIcon;

        wce.hInstance = hInstance;

        wce.lpfnWndProc = &windowProc;

        wce.lpszClassName = L"DemoLight";

        wce.lpszMenuName = NULL;

        wce.style = CS_HREDRAW | CS_VREDRAW;

        RegisterClassEx( &wce);

        HWND hwnd = CreateWindowEx( 0, wce.lpszClassName, L"Light", WS_OVERLAPPEDWINDOW, , , , , NULL, NULL, hInstance, NULL);

        InitD3D( hwnd);

        InitGeometry();

        ShowWindow( hwnd, SW_SHOWNORMAL);

        UpdateWindow( hwnd);

        MSG msg;

        ZeroMemory( &msg, sizeof( msg));

        while( msg.message != WM_QUIT) {

        if ( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE)) {

        TranslateMessage( &msg);

        DispatchMessage( &msg);

        } else

        Render();

        }

        return 0;

       }

Renderdoc DirectX ByteCode 转 HLSL 插件 修复说明,DXBC/HLSL 逆向反汇编

       面对问题描述,码下您可能在尝试使用特定插件进行DirectX ByteCode转HLSL时遇到了错误。码下解决此问题的码下微信小程序题目测试源码关键在于选用正确的插件,推荐使用原版的码下cmd_HLSLDecompile.exe,该工具的码下源代码位于github.com/bo3b/3Dmigot...。为了确保问题的码下解决,您需要执行以下步骤:

       1. 将原版的码下cmd_HLSLDecompile.exe下载到指定路径,例如D:/Work/HLSLDecompiler。码下

       2. 在同一目录下创建一个bat文件,码下输入上述脚本内容。码下网站源码开发教程命名文件为hlsl_decompiler_wrapper.bat。码下

       3. 使用renderdoc时调用此bat文件,码下并在编辑过程中解决问题。

       补充说明:在使用过程中,您可能会遇到针对android平台的half类型与minf4不支持的问题。这是因为当前工具并未考虑到Minimum-precision data types的处理情况。若您是Unity开发者且在编辑器中遇到此问题,请尝试将开发平台设置回Windows。这将有助于解决相关问题并顺利转换DirectX ByteCode至HLSL。

WorldWind编译生成,解决乱码等问题

       本文专注于解决在使用World Wind时可能遇到的编译、运行以及中文乱码等问题。遍历指标公式源码World Wind是一个由美国国家航空航天局主导的开源地理信息系统项目,旨在为全球开发人员提供一个三维的数字化地球展示平台,支持多种地理数据服务,并具有优秀的通用性和扩展性。

       首先,针对World Wind源码的获取与配置,文章提供了两种版本的下载链接:Java版本和.NET版本。建议使用SVN进行下载,以确保顺利获取所需源码。在配置环境时,需要提前安装好DirectX9。在编译源码过程中,社工源码怎么用发现某些字符串相关的语法错误,这些问题主要是由文件编码引起的。通过在Visual Studio(VS)的解决方案管理器中,右键选择文件,打开方式,选择“带编码功能的CSharp编辑器”,并将文件编码设置为UTF8,即可解决乱码问题。

       另外,遇到LoaderLock问题时,可在调试菜单中取消该选项。注册表权限问题可通过取消“生成”选项卡中“注册为COM互操作”前的dubbo怎么调源码勾选来解决。针对加载初始化界面至程序本身需要较长时间的问题,文章提供了解决方案,即注释掉特定的代码行以避免连接世界风服务器。

       在运行程序时,出现Splash窗体显示错位的情况,通过调试发现与picturebox控件有关,调整显示方式后,问题得以解决。文章还建议将源码备份到百度网盘和自己的SVN服务器上,但注意部分操作可能需要额外步骤。

       解决过程中,也注意到在生成项目或清理项目后仍存在的问题,通过删除特定文件并重新配置,最终成功解决。文章还提供了关于引用dll文件的建议,提示在切换模式至Debug时,可能会遇到编译问题,通过拷贝对应dll至Release目录下可解决。

       对于中文乱码问题,文章强调了在“高级选项保存”时选择带签名的UTF-8保存的重要性。文章列举了出现乱码的文件名称,提醒开发者在处理乱码时关注这些文件。通过上述措施,中文乱码问题得以彻底解决。

       最后,文章介绍了将svn代码迁移到x机器上时,遇到的“System.BadImageFormatException”异常问题,并提供了相应的解决方法,即更改模式为x,并调整output path。通过这些步骤,成功解决了在不同平台上的编译与运行问题。

Directx/添加imgui踩坑记

       尝试在DX/中集成ImGui,经过一番摸索后终于搞定,现将遇到的坑点整理如下:

       在DX上添加ImGui,首先需要下载ImGui源码,确保包含必要的头文件。在D3DApp.h中添加相应的附加include和头文件。之后,让ImGui能够处理窗口消息,参考官方样例添加代码,确保在初始化ImGui后调用。将ImGui的初始化代码放置在D3DCreateDevice执行之后,避免因找不到Device而引发错误。在GameApp.cpp的DrawScene方法中绘制ImGui界面,完成基本集成。

       运行后可能会遇到未解析的外部符号、错误代码等问题,解决方法是确保ImGui文件与项目一起被编译,将ImGui文件添加到项目中即可。

       对于将ImGui代码放入GameApp.cpp或D3DApp.cpp中的差异,虽然两者均能正常运行,但将代码放入D3DApp.cpp中时可能会出现闪烁现象,具体原因尚不明了,期待高手解答。

       在成功搞定DX后,DX的集成变得相对简单。初始代码基于DX龙书第6章绘制盒子的示例进行调整。步骤与DX类似,关键在于确保ImGui与设备上下文的正确交互,以及对mSrvHeap的恰当处理。

       整体集成工作花费时间不多,关键在于理解ImGui与底层渲染框架的交互机制。所有涉及的代码修改和优化结果已整理至特定仓库中,方便后续参考。

       此外,推荐观看某油管up主关于ImGui原理及在DX中集成的视频教程,该视频已翻译并上传至B站,对深入理解ImGui的使用和原理提供了宝贵指导。

求个《directx角色扮演游戏编程》配套光盘镜像文件

       题名:     DirectX角色扮演游戏编程(详细)    

       作者:     (美) Jim Adams著    

       出版者:     重庆大学出版社    

       日期:         

       中图法分类号:     TP.    

       ISBN:     7---1,7---9    

        

       是这个吧?

copyright © 2016 powered by 皮皮网   sitemap