关于dx9和dx11下开发的问题 [问题点数:100分,结帖人spirit008]

Bbs5
本版专家分:2082
结帖率 100%
Bbs12
本版专家分:433021
版主
Blank
榜眼 2009年 总版技术专家分年内排行榜第二
2005年 总版技术专家分年内排行榜第二
Blank
进士 2018年总版新获得的技术专家分排名前十
Blank
银牌 2009年7月 总版技术专家分月排行榜第二
2009年3月 总版技术专家分月排行榜第二
2009年1月 总版技术专家分月排行榜第二
2005年7月 总版技术专家分月排行榜第二
2005年5月 总版技术专家分月排行榜第二
2005年3月 总版技术专家分月排行榜第二
Blank
优秀版主 优秀小版主
2015年8月优秀小版主
2015年9月优秀小版主
2015年5月优秀小版主
2015年2月论坛优秀版主
Bbs7
本版专家分:12775
Bbs5
本版专家分:2082
Bbs5
本版专家分:2082
Bbs7
本版专家分:29442
版主
Blank
优秀版主 2014年11月论坛优秀版主
Blank
黄花 2013年12月 VC/MFC大版内专家分月排行榜第二
Blank
蓝花 2014年2月 VC/MFC大版内专家分月排行榜第三
2013年11月 VC/MFC大版内专家分月排行榜第三
Bbs12
本版专家分:433021
版主
Blank
榜眼 2009年 总版技术专家分年内排行榜第二
2005年 总版技术专家分年内排行榜第二
Blank
进士 2018年总版新获得的技术专家分排名前十
Blank
银牌 2009年7月 总版技术专家分月排行榜第二
2009年3月 总版技术专家分月排行榜第二
2009年1月 总版技术专家分月排行榜第二
2005年7月 总版技术专家分月排行榜第二
2005年5月 总版技术专家分月排行榜第二
2005年3月 总版技术专家分月排行榜第二
Blank
优秀版主 优秀小版主
2015年8月优秀小版主
2015年9月优秀小版主
2015年5月优秀小版主
2015年2月论坛优秀版主
Bbs5
本版专家分:2082
Bbs12
本版专家分:433021
版主
Blank
榜眼 2009年 总版技术专家分年内排行榜第二
2005年 总版技术专家分年内排行榜第二
Blank
进士 2018年总版新获得的技术专家分排名前十
Blank
银牌 2009年7月 总版技术专家分月排行榜第二
2009年3月 总版技术专家分月排行榜第二
2009年1月 总版技术专家分月排行榜第二
2005年7月 总版技术专家分月排行榜第二
2005年5月 总版技术专家分月排行榜第二
2005年3月 总版技术专家分月排行榜第二
Blank
优秀版主 优秀小版主
2015年8月优秀小版主
2015年9月优秀小版主
2015年5月优秀小版主
2015年2月论坛优秀版主
Bbs5
本版专家分:2082
Bbs1
本版专家分:46
Bbs7
本版专家分:12775
Bbs3
本版专家分:885
DirectX11 With Windows SDK--使用Windows SDK来进行开发
DirectX11–使用Windows SDK来进行<em>开发</em> 在看龙书(Introduction to 3D Game Programming with Directx 11)的时候,里面所使用的<em>开发</em>工具包为Microsoft DirectX SDK(June 2010),该<em>开发</em>包到现在也已经经历了8年左右。而现在,微软其实已经将DX的相关组件随同Windows SDK一同更新,并不再对Direct...
DX11关于“D3D11CreateDeviceAndSwapChain”的出错问题
[code=c]rnrnbool CDx11Base::Initialize( HINSTANCE hInstance, HWND hwnd )rnrn hInstance_ = hInstance;rn hwnd_ = hwnd;rnrn RECT dimensions;rn GetClientRect(hwnd, &dimensions);rnrn unsigned int width = dimensions.right - dimensions.left;rn unsigned int height = dimensions.bottom - dimensions.top;rnrn D3D_DRIVER_TYPE driverTypes[] =rn rn D3D_DRIVER_TYPE_HARDWARE, D3D_DRIVER_TYPE_WARP,rn D3D_DRIVER_TYPE_REFERENCE, D3D_DRIVER_TYPE_SOFTWARE,rn D3D_DRIVER_TYPE_UNKNOWNrn ;rnrn unsigned int totalDriverTypes = ARRAYSIZE( driverTypes );rnrn D3D_FEATURE_LEVEL featureLevels[] = rn rn D3D_FEATURE_LEVEL_11_0,rn D3D_FEATURE_LEVEL_10_1,rn D3D_FEATURE_LEVEL_10_0,rn D3D_FEATURE_LEVEL_9_3, rn D3D_FEATURE_LEVEL_9_2, rn D3D_FEATURE_LEVEL_9_1rn ;rnrn unsigned int totalFeatureLevels = ARRAYSIZE( featureLevels );rnrn DXGI_SWAP_CHAIN_DESC swapChainDesc; // 创建交换链结构体对象;rn ZeroMemory( &swapChainDesc, sizeof(swapChainDesc)); // 初始化为0;rn swapChainDesc.BufferCount = 1; // 设置swap chain中buffer的数量,不包括front buffer;rn swapChainDesc.BufferDesc.Width = width; // 设置宽度;rn swapChainDesc.BufferDesc.Height = height; // 设置高度;rn swapChainDesc.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; // 扫描方式;rn swapChainDesc.BufferDesc.RefreshRate.Numerator = 60; // 设置刷新频率;rn swapChainDesc.BufferDesc.RefreshRate.Denominator = 1; // 设置共同特性;rn swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; // 设置surface的使用方式,设置CPU对backbuffer的访问方式,这些backbuffer可以用作shader input或者render target output;rn swapChainDesc.OutputWindow = hwnd; // 输出窗口句柄; rn swapChainDesc.Windowed = true; // 设置是窗口模式还是全屏模式;rn swapChainDesc.SampleDesc.Count = 1; // 没像素多重采样的个数,默认 1;rn swapChainDesc.SampleDesc.Quality = 0; // 图像的质量等级,等级越高,性能越低,默认 0;可选范围是0到ID3D10Device::CheckMultisampleQualityLevels;rnrn unsigned int creationFlags = 0;rnrn#ifdef _DEBUGrn creationFlags |= D3D11_CREATE_DEVICE_DEBUG;rn#endifrn HRESULT result ;rn unsigned int driver =0;rn IDXGIAdapter *pAdapter_Set = NULL;rnrnrn for (driver =0; driver < totalDriverTypes; ++driver)rn rn rn // 确定设备类型;rn result = D3D11CreateDeviceAndSwapChain( /*pAdapter_Set*/ 0 , driverTypes[driver], 0, creationFlags,rn featureLevels, totalFeatureLevels,rn D3D11_SDK_VERSION, &swapChainDesc, &swapChain_I,rn &d3dDevice_I, &featureLevel_, &d3dContext_I );rn if( SUCCEEDED(result) )rn rn driverType_ = driverTypes[driver];rn break;rn rn rnrn if( FAILED(result) )rn rn DXTRACE_MSG( L"Direct3D设备错误!");rn return false;rn rnrn ID3D11Texture2D* backBufferTexture;rnrn result = swapChain_I->GetBuffer( 0, __uuidof( ID3D11Texture2D ), ( LPVOID* )&backBufferTexture );rnrn if( FAILED( result ) )rn rn DXTRACE_MSG(L"获取交换链后台缓存失败!");rn return false;rn rnrn result = d3dDevice_I->CreateRenderTargetView( backBufferTexture, 0, &backBufferTarget_I );rnrn if( backBufferTexture )rn backBufferTexture->Release();rnrn if( FAILED( result ) )rn rn DXTRACE_MSG(L"创建渲染目标视图失败!");rn return false;rn rnrn d3dContext_I->OMSetRenderTargets( 1, &backBufferTarget_I, 0 );rnrn // 创建视口;rn D3D11_VIEWPORT viewport;rn viewport.Width = static_cast(width);rn viewport.Height = static_cast(height);rn viewport.MinDepth = 0.0f;rn viewport.MaxDepth = 1.0f;rn viewport.TopLeftX = 0.0f;rn viewport.TopLeftY = 0.0f;rnrn d3dContext_I->RSSetViewports( 1, &viewport );rnrn return LoadContent();rnrn[/code]rnrn这段代码是摘自《【Visual C++】游戏<em>开发</em>笔记之29 一步一步教你用优雅的Direct3D11代码画一个三角形》的一个函数,在我家的电脑上运行到这里的D3D11CreateDeviceAndSwapChain函数就会返回错误E_INVALIDARG或者E_FAIL,但是在其他的电脑上就能正常返回S_OK值。rn这是为什么呢?rn显卡肯定支持DX11。项目配置也没有<em>问题</em>!为什么呢??rn求高手帮助!rn也欢迎大家一起谈论!
Dx9 SDK DirectShow开发
Dx9 SDK VC++6.0下,选择“工具”-“选项”-“目录” 将Dx9 SDK里面的incude和lib分别包含进去
DX10和DX11支持DX9中的SetRenderState函数吗?
DX10和DX11支持DX9中的SetRenderState函数吗?
vc6.0关于dx9类型问题
我在vc6.0下申明一个类后类型名颜色为黑色如IMediaPosition,而申明一个其他类型非<em>dx9</em>中的类型则不是如:[color=#0000FF]int[/color]且没提示这个怎样设置?
问个关于DX9的简单的问题
在用VC6。0编译DX90SDK下面的列子的时候怎么都是这样的错误呢rncannot open file "..\..\baseclasses\debug_unicode\strmbasd.librn拼且都是strmabsd.lib这个文件,不知道<em>问题</em>出现在哪里?刚用VC请大家指点下
NVIDIA详细解读游戏中DX9与DX11差别
10月28日,NVIDIA在日本召<em>开发</em>布会,以《孤岛危机2》和《战地3》为例,详细对比了DX11中新图像技术在游戏上的应用,以及对比DX9取得的进步。 首先是DX11最重要的特征——曲面细分,使得图像多边形数量进一步提升,表面细节真实感更强烈。 此外,视差贴图技术的应用令图像的立体感得到增加,在多边形数量相同时,凸凹程度和阴影表现均得到增强。
dx修复工具_dx9_dx10_dx11
dx修复工具,包含了<em>dx9</em>、dx10、<em>dx11</em>修复的功能 从网上搜罗到的绿色工具,亲测有效
DX9问题
编译d3d的例子的时候(无改动)rn提示ULongToHandle和UlongToPtr没有定义rn在commonsrcd3dapp.cpp和d3dsettings.cpp下rnrn以及也在d3dsettings.cpp中rnC:DXSDKSamplesC++Commonsrcd3dsettings.cpp(276) : error C2664: 'DialogBoxParamA' : cannot convert parameter 4 from 'long (struct HWND__ *,unsigned int,unsigned int,long)' to 'int (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)'rnrn其它无错误rn用wizard建立 工程也如此rnrnvc6+sp6&win2000pro+sp3
DX11 HOOK present 问题
一个游戏是DX11的 我HOOK了它的present后 来绘制我自己想的图形,rn一般正常游玩下,它都有把图形绘制出来 但是如果组队后 游戏的界面会多出一个组队的队友信息 导致我的图形不被显示了rn但是如果在游戏内调出菜单栏或者 游戏内自己有文字提醒时,我绘制的图形又出现了.真的很奇怪 帮忙解答rnrn正常模式下rn[b][img=https://img-bbs.csdn.net/upload/201709/23/1506137272_905085.jpg][/img][/b]rnrn组队模式下,游戏左上角会多出一个组队框出来 这时候我的图形就不绘制了rn[img=https://img-bbs.csdn.net/upload/201709/23/1506137306_508213.png][/img]rnrn如果我呼出游戏的菜单或者游戏内有文字提醒输出在游戏画布上时,我画的东西又出现了rn[img=https://img-bbs.csdn.net/upload/201709/23/1506137348_611082.png][/img]rnrn绘制图形代码rnRenderer::Renderer(ID3D11Device *direct3DDevice, const std::wstring &defaultFontFamily) :rn direct3DDevice(direct3DDevice),rn immediateContext(nullptr),rn inputLayout(nullptr),rn vertexShader(nullptr),rn pixelShader(nullptr),rn fontFactory(nullptr),rn fontWrapper(nullptr),rn defaultFontFamily(defaultFontFamily),rn maxVertices(1024 * 4 * 3)rnrn D3D11_INPUT_ELEMENT_DESC layout[] =rn rn "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 ,rn "COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 16, D3D11_INPUT_PER_VERTEX_DATA, 0 ,rn ;rnrn ID3DBlob *vsBlob = nullptr;rn ID3DBlob *psBlob = nullptr;rnrn direct3DDevice->GetImmediateContext(&immediateContext);rnrn throwIfFailed(FW1CreateFactory(FW1_VERSION, &fontFactory));rnrn renderList = std::make_unique(fontFactory, maxVertices);rnrn throwIfFailed(fontFactory->CreateFontWrapper(direct3DDevice, defaultFontFamily.c_str(), &fontWrapper));rnrnrn HMODULE hD3DCompiler = LoadLibraryA("D3DCompiler_43.dll");rn if (hD3DCompiler == NULL) rn ExitProcess(0);rn rnrn m_pfnD3DCompile = reinterpret_cast(GetProcAddress(hD3DCompiler, "D3DCompile"));rn if (m_pfnD3DCompile == NULL) rn ExitProcess(0);rn rnrn throwIfFailed(m_pfnD3DCompile(shader, std::size(shader), nullptr, nullptr, nullptr, "VS", "vs_4_0", 0, 0, &vsBlob, nullptr));rn throwIfFailed(m_pfnD3DCompile(shader, std::size(shader), nullptr, nullptr, nullptr, "PS", "ps_4_0", 0, 0, &psBlob, nullptr));rnrn throwIfFailed(direct3DDevice->CreateVertexShader(vsBlob->GetBufferPointer(), vsBlob->GetBufferSize(), nullptr, &vertexShader));rn throwIfFailed(direct3DDevice->CreatePixelShader(psBlob->GetBufferPointer(), psBlob->GetBufferSize(), nullptr, &pixelShader));rnrn throwIfFailed(direct3DDevice->CreateInputLayout(layout, static_cast(std::size(layout)), vsBlob->GetBufferPointer(), vsBlob->GetBufferSize(), &inputLayout));rnrn safeRelease(vsBlob);rn safeRelease(psBlob);rnrnrn D3D11_BLEND_DESC blendDesc;rnrn blendDesc.RenderTarget->BlendEnable = TRUE;rn blendDesc.RenderTarget->SrcBlend = D3D11_BLEND_SRC_ALPHA;rn blendDesc.RenderTarget->DestBlend = D3D11_BLEND_INV_SRC_ALPHA;rn blendDesc.RenderTarget->SrcBlendAlpha = D3D11_BLEND_ONE;rn blendDesc.RenderTarget->DestBlendAlpha = D3D11_BLEND_ZERO;rn blendDesc.RenderTarget->BlendOp = D3D11_BLEND_OP_ADD;rn blendDesc.RenderTarget->BlendOpAlpha = D3D11_BLEND_OP_ADD;rn blendDesc.RenderTarget->RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;rnrn throwIfFailed(direct3DDevice->CreateBlendState(&blendDesc, &blendState));rnrn D3D11_BUFFER_DESC bufferDesc;rnrn bufferDesc.Usage = D3D11_USAGE_DYNAMIC;rn bufferDesc.ByteWidth = sizeof(Vertex) * static_cast(maxVertices);rn bufferDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER;rn bufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;rn bufferDesc.MiscFlags = 0;rnrn throwIfFailed(direct3DDevice->CreateBuffer(&bufferDesc, nullptr, &vertexBuffer));rnrn bufferDesc = ;rnrn bufferDesc.Usage = D3D11_USAGE_DYNAMIC;rn bufferDesc.ByteWidth = sizeof(XMMATRIX);rn bufferDesc.BindFlags = D3D11_BIND_CONSTANT_BUFFER;rn bufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;rn bufferDesc.MiscFlags = 0;rnrn throwIfFailed(direct3DDevice->CreateBuffer(&bufferDesc, nullptr, &screenProjectionBuffer));rnrn D3D11_VIEWPORT viewport;rn UINT numViewports = 1;rnrn immediateContext->RSGetViewports(&numViewports, &viewport);rnrn //DbgPrintA("%f, %f, %f, %f, %f, %f", viewport.TopLeftX, viewport.Width, viewport.Height, viewport.TopLeftY, viewport.MinDepth, viewport.MaxDepth);rnrn projection = XMMatrixOrthographicOffCenterLH(viewport.TopLeftX, viewport.Width, viewport.Height, viewport.TopLeftY, viewport.MinDepth, viewport.MaxDepth);rnrn D3D11_MAPPED_SUBRESOURCE mappedResource;rn throwIfFailed(immediateContext->Map(screenProjectionBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource));rn rn std::memcpy(mappedResource.pData, &projection, sizeof(XMMATRIX));rn rn immediateContext->Unmap(screenProjectionBuffer, 0);rnrnrnrnrnrn ID3D11Texture2D* RenderTargetTexture;rn if (SUCCEEDED(g_pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&RenderTargetTexture)))rn rnrn direct3DDevice->CreateRenderTargetView(RenderTargetTexture, NULL, &pRenderTargetView);rn RenderTargetTexture->Release();rn rnrnrnrnRenderer::~Renderer()rnrn safeRelease(vertexShader);rn safeRelease(pixelShader);rn safeRelease(vertexBuffer);rn safeRelease(inputLayout);rn safeRelease(blendState);rn safeRelease(fontWrapper);rn safeRelease(fontFactory);rnrnrnvoid Renderer::begin()rnrn immediateContext->OMSetRenderTargets(1, &pRenderTargetView, NULL);rnrnrn UINT numViewports = 1;rn D3D11_VIEWPORT viewport;rn immediateContext->RSGetViewports(&numViewports, &viewport);rnrn projection = XMMatrixOrthographicOffCenterLH(viewport.TopLeftX, viewport.Width, viewport.Height, viewport.TopLeftY, viewport.MinDepth, viewport.MaxDepth);rnrn D3D11_MAPPED_SUBRESOURCE mappedResource;rn throwIfFailed(immediateContext->Map(screenProjectionBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource));rn rn std::memcpy(mappedResource.pData, &projection, sizeof(XMMATRIX));rn rn immediateContext->Unmap(screenProjectionBuffer, 0);rnrnrn immediateContext->VSSetShader(vertexShader, nullptr, 0);rn immediateContext->PSSetShader(pixelShader, nullptr, 0);rnrn immediateContext->OMSetBlendState(blendState, nullptr, 0xffffffff);rnrn immediateContext->VSSetConstantBuffers(0, 1, &screenProjectionBuffer);rnrn immediateContext->IASetInputLayout(inputLayout);rnrn UINT stride = sizeof(Vertex);rn UINT offset = 0;rn immediateContext->IASetVertexBuffers(0, 1, &vertexBuffer, &stride, &offset);rnrnrnvoid Renderer::end()rnrn //pRenderTargetView->Release();rn renderList->clear();rnrnrnvoid Renderer::draw(const RenderList::Ptr &renderList)rnrn if (std::size(renderList->vertices) > 0)rn rn D3D11_MAPPED_SUBRESOURCE mappedResource;rn throwIfFailed(immediateContext->Map(vertexBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource));rn rn std::memcpy(mappedResource.pData, renderList->vertices.data(), sizeof(Vertex) * std::size(renderList->vertices));rn rn immediateContext->Unmap(vertexBuffer, 0);rn rn rn std::size_t pos = 0;rnrn for (const auto &batch : renderList->batches)rn rn immediateContext->IASetPrimitiveTopology(batch.topology);rn immediateContext->Draw(static_cast(batch.count), static_cast(pos));rnrn pos += batch.count;rn rn rn fontWrapper->Flush(immediateContext);rn fontWrapper->DrawGeometry(immediateContext, renderList->textGeometry, nullptr, nullptr, FW1_RESTORESTATE);rnrnrnvoid Renderer::draw()rnrn draw(renderList);rnrnrnrnrnHOOK及画图初始化rnHRESULT __stdcall MyPresent(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags)rnrn rn static bool bInit = false;rn if (!bInit)rn rn g_pSwapChain = pSwapChain;rn pSwapChain->GetDevice(__uuidof(g_pDevice), (void**)&g_pDevice);rn renderer = std::make_unique(g_pDevice);rn bInit = true;rn rn renderer->begin();rn renderer->drawOutlinedRectA(20, 20, 300, 300, GColor::Blue(), GColor::Red());rn renderer->draw();rn renderer->end();rn HRESULT hRet = OLD_Present(pSwapChain, SyncInterval, Flags);rn return hRet;rnrnrn
请教WIN7(DirectX11)下开发dx9遇到的问题
最近正在学习DirectX编程,在Windows2003系统<em>开发</em>的程序能正常运行,但是拿到Win7机器上后就出现<em>问题</em>,请高手给指点一下好吗?rnLPDIRECT3D9 m_pD3D; //d3d对象rnm_pD3D = Direct3DCreate9(D3D_SDK_VERSION);rnrnD3DCAPS9 d3dCaps;rn[color=#FF0000]HRESULT hr = m_pD3D->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &d3dCaps);[/color]rnZeroMemory(&m_d3dpp,sizeof(m_d3dpp));rnm_d3dpp.Windowed=TRUE;rnm_d3dpp.BackBufferFormat=d3ddm.Format;rnm_d3dpp.BackBufferCount = 1;rnm_d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;rnm_d3dpp.hDeviceWindow=m_hWnd3D; rnm_d3dpp.AutoDepthStencilFormat=D3DFMT_D32;rnm_d3dpp.EnableAutoDepthStencil=TRUE; rnm_d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;rnm_d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;rnm_d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_ONE;rnm_d3dpp.BackBufferWidth = rc.right;rnm_d3dpp.BackBufferHeight = rc.bottom;rnrn[color=#FF0000]hr = m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,m_hWnd3D,dwFlags,&m_d3dpp,&m_pD3DDevice);[/color]rnrnrnrn在Windows2003系统上,一点<em>问题</em>都没有,但是在Win7上调试的时候,Direct3DCreate9可以成功,但是GetDeviceCaps和CreateDevice,就抱错返回 D3DERR_NOTAVAILABLE,请问是什么原因呢?先谢谢大家了
dx9 游戏终极开发 例子问题
bool InitializeD3D(HWND hWnd, bool fullscreen)rnrn D3DDISPLAYMODE displayMode;rn g_D3D = Direct3DCreate9(D3D_SDK_VERSION);rn if(g_D3D == NULL) return false;rn if(FAILED(g_D3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT,rn &displayMode))) return false;rnrn D3DPRESENT_PARAMETERS d3dpp;rn ZeroMemory(&d3dpp, sizeof(d3dpp));rnrnrn if(fullscreen)rn rn d3dpp.Windowed = FALSE;rn d3dpp.BackBufferWidth = 640;rn d3dpp.BackBufferHeight = 480;rn rn elsern d3dpp.Windowed = TRUE;rn d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;rn d3dpp.BackBufferFormat = displayMode.Format;rnrn if(FAILED(g_D3D->CreateDevice(D3DADAPTER_DEFAULT,rn D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING,rn &d3dpp, &g_D3DDevice))) return false;rnrn if(!InitializeObjects()) return false;rnrn return true;rnrnrnrnbool InitializeObjects()rnrn unsigned long col = D3DCOLOR_XRGB(255, 255, 255);rnrn stD3DVertex objData[] =rn rn 420.0f, 150.0f, 0.5f, 1.0f, col, ,rn 420.0f, 350.0f, 0.5f, 1.0f, col, ,rn 220.0f, 150.0f, 0.5f, 1.0f, col, ,rn 220.0f, 350.0f, 0.5f, 1.0f, col, ,rn ;rnrn if(FAILED(g_D3DDevice->CreateVertexBuffer(sizeof(objData), 0,rn D3DFVF_VERTEX, D3DPOOL_DEFAULT, &g_VertexBuffer,rn NULL))) return false;rnrn void *ptr;rnrn [color=#FF0000] if(FAILED(g_VertexBuffer->Lock(0, sizeof(objData),rn (void**)&ptr, 0))) return false;rn memcpy(ptr, objData, sizeof(objData));rn g_VertexBuffer->Unlock();[/color]rn return true;rnrnvoid RenderScene()rnrn g_D3DDevice->Clear(0, NULL, D3DCLEAR_TARGET,rn D3DCOLOR_XRGB(0,0,0), 1.0f, 0);rn g_D3DDevice->BeginScene();rn g_D3DDevice->SetStreamSource(0, g_VertexBuffer, 0, sizeof(stD3DVertex));rn g_D3DDevice->SetFVF(D3DFVF_VERTEX);rn g_D3DDevice->DrawPrimitive(D3DPT_LINELIST, 0, 2);rn g_D3DDevice->EndScene();rn g_D3DDevice->Present(NULL, NULL, NULL, NULL);rnrnrnrnvoid Shutdown()rnrn if(g_D3DDevice != NULL) g_D3DDevice->Release();rn if(g_D3D != NULL) g_D3D->Release();rn if(g_VertexBuffer != NULL) g_VertexBuffer->Release();rn g_D3DDevice = NULL;rn g_D3D = NULL;rn g_VertexBuffer = NULL;rn[/code]rnrn为什么去掉这个memcpy 就不会显示三角形了呢? (lock 和unlock之间的)rn有没有大神愿意告诉我?
关于DX9,震动手柄的编程问题~~~
直接修改的dx中的例子,例子运行很正常。rn我想改成通过按键来触发震动,参考文档,只要修改DIEFFECT结构的dwTriggerButton就行了。我赋值为DIJOFS_BUTTON0,为什么不行啊?例子和原来一样,没有任何改变。要怎样做才能通过按键来触发啊?rn希望哪位大虾能提供可用的例子,万分感谢~~~~
关于c#的dx9编程
各位谁知道那有c#的<em>dx9</em>中文教程看,发现c++DX9和C#DX9差蛮多的。英文又不太好。想找详细点的中文教程。麻烦那位大哥知道的贴个地址。先谢了。100分送上
dx9开发点光源的例子代码
<em>dx9</em><em>开发</em>点光源的例子代码
DX11 游戏开发笔记 (三) DX11 实现类框架 (下)
最近心情有点波动,导致博客写的一塌糊涂,上篇博文草草就结束了,很对不起自己,整理好心情,准备好好写下博文,算是对自己的考验吧。 C++是一门很厉害的语言,在游戏这方面更是显得非常出色,C++最基础的东西就是类,怎么将写好的流程代码封装是一个技术活,推荐《effective c++》这系列的三本书,(当然其中有些约定不适合游戏)它或许无法提升一个游戏可玩性,甚至它还会增加你游戏负担,但会让你如鱼得...
DX11初始化
该实例代码能够帮助初学者了解DX11的初始化过程
Dx9 纹理奇怪问题
有一张79 x 117像素图rnrnwidth = 79;rnheight = 117;rnrnD3DXCreateTexture( pD3DDevice, width, height,rn 1, // Mip levelsrn 0, // Usagern D3DFMT_A1R5G5B5, // Formatrn D3DPOOL_MANAGED, // Memory poolrn &pTex ) )rnrn创建后使用rnpTex->GetLevelDesc(0, &TDesc)rnTDesc.Width 为 79rnrn但是lockrect 后pltch 为160rnrn<em>问题</em>一,D3DXCreateTexture不是自动优化吗?不应该是宽度和高度优化到128吗?如果MipLevels那里写成0会自动优化到128,但是2D游戏,不需要MIP啊。rnrn<em>问题</em>二,当lockrect时候pltch 为160,然后按每行填充像素,我的机器显示图片正确,但是在虚拟机XP系统中,那种显卡图片就不正确了,每行像素差2个BYTE那种错位,把pitch换成 79*2虚拟机上就没<em>问题</em>了,但是在我机器上又是错位, 请问大神高手们是什么<em>问题</em>啊?
vc2008 安装dx9问题
我原来在xp上的vc6安装了<em>dx9</em>sdk,现在改为vc2008,这个旧的<em>dx9</em>sdk还有用吗,需要从新下载<em>dx9</em>a,b,c吗,另外vc2008的安装路径方法和vc6很不同,能否给一个详细一点的步骤,麻烦各位了,小白等着。
dx9的HLSL的问题
请教个<em>问题</em>。在<em>dx9</em>的HLSL中能用强制类型转换吗?我要把float转成int用于数组的索引。如果能我就能快速的模拟出不破裂的理想水面来。rn
编译DX9时的问题
Error scanning file C:\DXSDK\Samples\C++\DirectShow\Filters\DSNetwork\IDL\dsnetifc.h for dependencies.rn...rn...rnGenerating Code...rn.\combase.h(245) : warning C4717: '_imp__InterlockedIncrement' : recursive on all control paths, function will cause runtime stack overflowrn.\combase.h(248) : warning C4717: '_imp__InterlockedDecrement' : recursive on all control paths, function will cause runtime stack overflowrn.\combase.h(245) : warning C4717: '_imp__InterlockedIncrement' : recursive on all control paths, function will cause runtime stack overflowrn.\combase.h(248) : warning C4717: '_imp__InterlockedDecrement' : recursive on all control paths, function will cause runtime stack overflowrn.\combase.h(245) : warning C4717: '_imp__InterlockedIncrement' : recursive on all control paths, function will cause runtime stack overflowrn.\combase.h(248) : warning C4717: '_imp__InterlockedDecrement' : recursive on all control paths, function will cause runtime stack overflowrn...rn...rn..\..\BaseClasses\combase.h(245) : warning C4717: '_imp__InterlockedIncrement' : recursive on all control paths, function will cause runtime stack overflowrn..\..\BaseClasses\combase.h(248) : warning C4717: '_imp__InterlockedDecrement' : recursive on all control paths, function will cause runtime stack overflowrnLinking...rnLINK : fatal error LNK1104: cannot open file "..\..\common\wmstub.lib"rnError executing link.exe.rnrnASFCopy.exe - 1 error(s), 8 warning(s)rnrn不知道还需要安装其它什么东西?
请问一下DX9关于surface的问题
1.如何显示一块surfacern2.如何对surface像素进行操作
请教有关dx9问题
我已经include "dshow.h"rnrn但在程序中用ICaptureGraphBuilder2接口时提示该接口没有定义,请问这是什么rn原因啊,是不是还要包含什么头文件啊??
DX9 SetRenderTarget 问题
DX 9.0C rn使用rnSetRenderTarget(A)rnDraw(1)rnSetRenderTarget(B)rnDraw(2)rnSetRenderTarget(A)rnDraw(3)rnrn这样绘画,Draw(3)的内容绘画不出来, 调用的函数都是成功的, 就是看不到。rn如果我在 SetRenderTarget(A) 后面 Clear 一下rn那 Draw(3) 绘画能看到, 但是 Draw(1) 里面就会清空, 这个我明白, 我只是弄不懂, 在没有Clear 清空下,为什么Draw(3)绘画会失败。
Dx9的初始化问题
我在2000+VS2003用MFC想编写下Dx9的程序。可是在初始化Dx9是出错,具体如下:rn在调用::Direct3DCreate9(D3D_SDK_VERSION);这个函数是,提示我error LNK2019: 无法解析的外部符号 _Direct3DCreate9@4。不知道是怎么回事。请高手指点rn
Dx9初学者的问题
为什么我写了下面的代码 rnIDirect3D9* D3D;rnD3D = Direct3DCreate9( D3D_SDK_VERSION); rn总是会出现这样的错误呢?rnMain.obj : error LNK2001: unresolved external symbol _Direct3DCreate9@4rnDebug/SingleWindow.exe : fatal error LNK1120: 1 unresolved externalsrnrn谢谢
求教各位,关于DX9顶点颜色的问题
[b][img=https://img-bbs.csdn.net/upload/201307/03/1372861922_434093.png][/img][/b]rn如图,我给顶点加了颜色之后,就变成这个样子了。rn为什么只有线有颜色? 还需要设置什么东西?我想在没个面上面都弄颜色,该怎么弄啊?求教各位了。rnrn代码如下,就是龙书第3章cube的代码,我只是加了颜色rn[code=c]rn//////////////////////////////////////////////////////////////////////////////////////////////////rn// rn// File: cube.cpprn// rn// Author: Frank Luna (C) All Rights Reservedrn//rn// System: AMD Athlon 1800+ XP, 512 DDR, Geforce 3, Windows XP, MSVC++ 7.0 rn//rn// Desc: Renders a spinning cube in wireframe mode. Demonstrates vertex and rn// index buffers, world and view transformations, render states andrn// drawing commands.rn// rn//////////////////////////////////////////////////////////////////////////////////////////////////rnrn#include "d3dUtility.h"rnrn//rn// Globalsrn//rnrnHRESULT hr = 0;rnrnIDirect3DDevice9* Device = 0; rnrnconst int Width = 640;rnconst int Height = 480;rnrnIDirect3DVertexBuffer9* VB = 0;rnIDirect3DIndexBuffer9* IB = 0;rnID3DXMesh *ppmesh = 0;rnrnD3DXMATRIX WorldMatrix;rnD3DXMATRIX CenterPoint;rnD3DXMATRIX ObjectWorldMatrix;rnrnrnrnrn//rn// Classes and Structuresrn//rnrnstruct Vertexrnrn Vertex()rn Vertex(float x, float y, float z)rn rn _x = x; _y = y; _z = z;rn _color = 0;rn rn Vertex(float x,float y,float z,D3DCOLOR color)rn rn Vertex(x,y,z);rn _color = color;rn rn float _x, _y, _z;rn D3DCOLOR _color;rn static const DWORD FVF;rn;rnconst DWORD Vertex::FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE;rnrn//rn// Framework Functionsrn//rnbool Setup()rnrn //rn // Create vertex and index buffers.rn // 创建缓存rn //rn rn //顶点缓存rn hr = Device->CreateVertexBuffer(rn 8 * sizeof(Vertex), rn D3DUSAGE_WRITEONLY,rn Vertex::FVF,rn D3DPOOL_MANAGED,rn &VB,rn 0);rnrn if(hr)rn MessageBox(0,"Create Vertex buffers -> FAILED",0,0);rn return false;rn rnrn //索引缓存rn hr = Device->CreateIndexBuffer(rn 36 * sizeof(WORD),rn D3DUSAGE_WRITEONLY,rn D3DFMT_INDEX16,rn D3DPOOL_MANAGED,rn &IB,rn 0);rnrn if(hr)rn MessageBox(0,"Create index buffers -> FAILED",0,0);rn return false;rn rnrn //rn // Fill the buffers with the cube data. rn // 绘制立方体rn //rnrn // define unique vertices:rn //顶点rn Vertex* vertices;rn VB->Lock(0, 0, (void**)&vertices, 0);rnrn vertices[0] = Vertex(-1.0f, -1.0f, -1.0f);rn vertices[1] = Vertex(-1.0f, 1.0f, -1.0f);rn vertices[2] = Vertex( 1.0f, 1.0f, -1.0f);rn vertices[3] = Vertex( 1.0f, -1.0f, -1.0f);rn vertices[4] = Vertex(-1.0f, -1.0f, 1.0f);rn vertices[5] = Vertex(-1.0f, 1.0f, 1.0f);rn vertices[6] = Vertex( 1.0f, 1.0f, 1.0f);rn vertices[7] = Vertex( 1.0f, -1.0f, 1.0f);rn rn int i = 0;rn for(;iUnlock();rnrn // define the triangles of the cube:rn // 定义构造立方体的三角形rn WORD* indices = 0;rn IB->Lock(0, 0, (void**)&indices, 0);rnrn // front sidern indices[0] = 0; indices[1] = 1; indices[2] = 2;rn indices[3] = 0; indices[4] = 2; indices[5] = 3;rnrn // back sidern indices[6] = 4; indices[7] = 6; indices[8] = 5;rn indices[9] = 4; indices[10] = 7; indices[11] = 6;rnrn // left sidern indices[12] = 4; indices[13] = 5; indices[14] = 1;rn indices[15] = 4; indices[16] = 1; indices[17] = 0;rnrn // right sidern indices[18] = 3; indices[19] = 2; indices[20] = 6;rn indices[21] = 3; indices[22] = 6; indices[23] = 7;rnrn // toprn indices[24] = 1; indices[25] = 5; indices[26] = 6;rn indices[27] = 1; indices[28] = 6; indices[29] = 2;rnrn // bottomrn indices[30] = 4; indices[31] = 0; indices[32] = 3;rn indices[33] = 4; indices[34] = 3; indices[35] = 7;rnrn IB->Unlock();rnrn //D3DXMatrixTranslation(&WorldMatrix,-3.0f,0.0f,0.0f);rn //D3DXMatrixTranslation(&CenterPoint,3.0f,0.0f,0.0f);rn //D3DXCreateTeapot(Device,&ppmesh,0);rnrn //rn // Position and aim the camera.rn //rnrn D3DXVECTOR3 position(0.0f, 0.0f, -5.0f);rn D3DXVECTOR3 target(0.0f, 0.0f, 0.0f);rn D3DXVECTOR3 up(0.0f, 1.0f, 0.0f);rn D3DXMATRIX V;rn D3DXMatrixLookAtLH(&V, &position, &target, &up);rnrn Device->SetTransform(D3DTS_VIEW, &V);rnrn //rn // Set the projection matrix.rn //rnrn D3DXMATRIX proj;rn D3DXMatrixPerspectiveFovLH(rn &proj,rn D3DX_PI * 0.5f, // 90 - degreern (float)Width / (float)Height,rn 1.0f,rn 1000.0f);rn Device->SetTransform(D3DTS_PROJECTION, &proj);rnrnrn Device->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);rn //Device->SetRenderState(D3DRS_CULLMODE,D3DCULL_NONE);rn Device->SetRenderState(D3DRS_LIGHTING, false);rnrnrn return true;rnrnrnvoid Cleanup()rnrn d3d::Release(VB);rn d3d::Release(IB);rnrnrnbool Display(float timeDelta)rnrn if( Device )rn rn Device->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffff, 1.0f, 0);rn Device->BeginScene();rn Device->SetFVF(Vertex::FVF);rn Device->SetStreamSource(0, VB, 0, sizeof(Vertex));rn Device->SetIndices(IB);rn Device->SetRenderState(D3DRS_SHADEMODE,D3DSHADE_GOURAUD);rn Device->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 8, 0, 12);rn Device->EndScene();rn Device->Present(0, 0, 0, 0);rn rn return true;rnrnrnrn//rn// WndProcrn//rnLRESULT CALLBACK d3d::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)rnrn D3DXMATRIX Ry;rn D3DXMATRIX Rx;rn D3DXMATRIX p;rn D3DXMATRIX translation;rn static float y = 0.0f;rn static float x = 0.0f;rn static float z_axis = 0.0f;rn switch( msg )rn rn case WM_DESTROY:rn ::PostQuitMessage(0);rn break;rn rn case WM_KEYDOWN:rn switch (wParam)rn rn case VK_ESCAPE:rn DestroyWindow(hwnd);rn break;rn case VK_RIGHT:rn if(Device)rn y += 0.1f;rn if(y > 6.28f)rn y = 0.0f;rn D3DXMatrixRotationY(&Ry, y);rn D3DXMatrixRotationX(&Rx,x);rn D3DXMatrixTranslation(&translation,0,0,z_axis);rn p = Ry * Rx * translation;rn Device->SetTransform(D3DTS_WORLD,&p);rn break;rn rn case VK_LEFT:rn if(Device)rn y -= 0.1f;rn D3DXMatrixRotationY(&Ry, y);rn D3DXMatrixRotationX(&Rx,x);rn D3DXMatrixTranslation(&translation,0,0,z_axis);rn p = Ry * Rx * translation;rn Device->SetTransform(D3DTS_WORLD,&p);rn break;rn rn case VK_DOWN:rn if(Device)rn x -= 0.1f;rn if(x < 0)rn x = 6.28f;rn D3DXMatrixRotationY(&Ry, y);rn D3DXMatrixRotationX(&Rx,x);rn D3DXMatrixTranslation(&translation,0,0,z_axis);rn p = Ry * Rx * translation;rn Device->SetTransform(D3DTS_WORLD,&p);rn break;rn rn case VK_UP:rn if(Device)rn x += 0.1f;rn if(x > 6.28f)rn x = 0.0f;rn D3DXMatrixRotationY(&Ry, y);rn D3DXMatrixRotationX(&Rx,x);rn D3DXMatrixTranslation(&translation,0,0,z_axis);rn p = Ry * Rx * translation;rn //ObjectWorldMatrix = Rx * Ry;rn Device->SetTransform(D3DTS_WORLD,&p);rn break;rn rn case 87:rn if(Device)rn z_axis += 0.1f;rn D3DXMatrixRotationY(&Ry, y);rn D3DXMatrixRotationX(&Rx,x);rn D3DXMatrixTranslation(&translation,0,0,z_axis);rn p = Ry * Rx * translation;rn Device->SetTransform(D3DTS_WORLD,&p);rn break;rn rn case 83:rn if(Device)rn z_axis-=0.1f;rn D3DXMatrixRotationY(&Ry, y);rn D3DXMatrixRotationX(&Rx,x);rn D3DXMatrixTranslation(&translation,0,0,z_axis);rn p = Ry * Rx * translation;rn Device->SetTransform(D3DTS_WORLD,&p);rn break;rn rn rn if( wParam == VK_ESCAPE )rn ::DestroyWindow(hwnd);rn break;rn rn return ::DefWindowProc(hwnd, msg, wParam, lParam);rnrnrnrnD3DXMATRIX getMatrix(float* x,const float xIncrement, float* y, const float yIncrement)rn D3DXMATRIX Ry;rn D3DXMATRIX Rx;rn *x += xIncrement;rn *y += yIncrement;rn if(*x 6.28f)rn *x = 0.0f;rn rn if( *y < 0)rn *y = 6.28f;rn else if(*y > 6.28f)rn *y = 0.0f;rn rn D3DXMatrixRotationX(&Rx,*x);rn D3DXMatrixRotationY(&Ry,*y);rn return Rx * Ry;rn rnrnrnint WINAPI WinMain(HINSTANCE hinstance,rn HINSTANCE prevInstance, rn PSTR cmdLine,rn int showCmd)rnrn if(!d3d::InitD3D(hinstance,rn Width, Height, true, D3DDEVTYPE_HAL, &Device))rn rn ::MessageBox(0, "InitD3D() - FAILED", 0, 0);rn return 0;rn rn rn if(!Setup())rn rn ::MessageBox(0, "Setup() - FAILED", 0, 0);rn return 0;rn rnrn d3d::EnterMsgLoop( Display );rnrn Cleanup();rnrn Device->Release();rnrn return 0;rnrnrn[/code]
关于dx9中Surface的透明色问题
我利用<em>dx9</em>中的Surface来画2D的东东,在设置color key的时候,遇到了点<em>问题</em>。rnrn[code=C/C++]rn //载入图片到离屏页面 rn if ( FAILED(D3DXLoadSurfaceFromFile(srcSurface,//目的页面rn NULL,//目的页面调色板 rn NULL,//目的页面区域 rn "bk.bmp",//源文件路径 rn NULL,//源文件区域 rn D3DX_DEFAULT,//文件过滤类型 rn D3DCOLOR_ARGB(0,0,0,0),//0,//ColorKey rn NULL )))//图片信息 rn rn return false; rn rn return true; rn[/code]rn我的bk.bmp 里面,我想设置黑色为透明色,可是显示出来,黑色还在,没法透明。请高人指点。rnrn
再加100分,关于dx9安装的问题
http://community.csdn.net/Expert/topic/3660/3660496.xml?temp=.5685388rnrn请高手指教,十分感谢
基于DX11高斯模糊(Gaussian Blur DX11)
双通道直接卷积在当今的实时图形中是最常用的高斯滤波方法,但是当在大内核上运行时,它会变得很耗时,因为每个像素的成本随内核大小的线性增加而增加。许多应用程序在过滤前对输入图像进行采样,以降低性能。为了解决这一<em>问题</em>,在过去,我们提出了几种过滤宽度独立算法,其中大部分涉及频域转换1、递归计算4或重复集成5,直到最近引入的GPU通用计算才能够方便地在传统的GPU流水线上实现。在这三种技术中,重复集成通常被认为是直观和有效的。 在这个代码示例中,我们演示了如何通过使用计算着色器进行重复集成来执行高斯过滤。该算法基于以下简单事实:在输入数据上反复应用一个框式过滤器(平均过滤器),将快速近似高斯滤波的结果,而盒滤波可以通过扫描操作进行处理,从而使每个像素的成本独立于内核大小。作为传统的双通道卷积方法,我们还采用了一个垂直和水平的传递,在每一段中,每一列或一排像素首先被取到共享内存中,然后反复使用一个方框过滤器,最后将其写入到全局内存中。 在本文的其余部分中,我们将解释算法的细节,然后使用计算着色器和组共享内存来描述实现。
DX11 安装包
DX11 的安装包 ,百度云链接
DX11渲染管道
原文 类似渲染管线相关的讲解,这个网址链接的内容比较好: http://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/ 可惜外网进不去,进不去看这里也是一样: http://www.opengpu.org/forum.php?mod=viewthread&amp;amp;tid=6...
求助关于DX9 SDK配置的问题
小弟为非游戏专业rn但一直想自学游戏编程rn现在被DX SDK 搞的糊涂的很rn因为早先的游戏书上的DX配置和安装现在都不适应了rn弄的什么也搞不起rn请求高人帮助rn请问现在<em>开发</em>需要下载DX SDK是哪个版本的rn有地址的话就更好了谢谢rn然后就是IDE的配置,需要配合哪种IDErn我现在连个例子都运行不起。对这块一头雾水啊。。rn再次谢谢因为<em>问题</em>很无语rn
问个编译DX9的问题???
我是先建立的空的win32 application的工程!rn然后将《directx9 3D图形程序设计》第一章的原代码复制到我的工程下新建的direct1.cpp文件中!编译没错,可链接有<em>问题</em>?rnLinking...rndirect1.obj : error LNK2001: unresolved external symbol _Direct3DCreate9@4rnDebug/direct1.exe : fatal error LNK1120: 1 unresolved externalsrnError executing link.exe.rndirect1.exe - 2 error(s), 0 warning(s)rn但是如果我是直接打开那本书光盘中提供的dsw文件的话,再进行编译一切OK!rn这是什么原因?是不是我不应该建立win32 application的工程???或是应该建立其它类型的工程!rn谢谢!rn
dx9 影子建立的问题
我在建立影子的时候遇到了一个<em>问题</em>,<em>dx9</em>中的例子是用一个CD3DMESH建立影子的 但是我现在要给一个动画对象建立影子 这个对象是LPD3DFRAME类型的 我该怎么给这样的对象建立影子???
关于DX9中的SetVertexShader请教
最近在看andy pike的dx教程,今天学习了使用d3d绘制2d对象,我照着教程写了一下,发现rnm_pD3DDevice->SetVertexShader(PANEL_D3DFVF_CUSTOMVERTEX);这里无法编译,rn在<em>dx9</em>中好象已经改成了:rnHRESULT SetVertexShader(rn IDirect3DVertexShader9* pShaderrn);rn我不知道该怎么改了,请各位高手请教。rn我现在是使用了rnm_pD3DDevice->SetFVF(PANEL_D3DFVF_CUSTOMVERTEX);来代替,rn但是透明色没有启作用。
DX11 实现三角形
通过对DX11顶点缓存的学习,能够简单的实现基本图元的绘制
DX11创建纹理 : DirectXTex
NULL 博文链接:https://lengbingteng.iteye.com/blog/1757540
DX11 游戏开发笔记 (二) DX11 基础框架三角形 下
                         顶点缓存之几何三角       老鸟:怎么样,昨天游戏玩的开心吗,有没有秀出你快乐刀妹的操作。 小白:哇,那当然的,最开心的一把我现在还记忆犹新,我们前期劣势,有一波我们打野“盲僧”            Q到对面。W摸眼,一个R踢飞对面四人,我们中单亚索接大,我接R,直接团灭对面,            一波推家赢得胜利,我同学...
完整DX11库
用于DirectX 图形<em>开发</em> 学习参考资料.
vs2010开发DX9,没法包含头文件d3dx....
本来是加入D3DX9.H, 没法加入, 后来发现只要是D3DX.....都没法加入,SDK的INCLUDE文件夹里确实有这些文件rn像D3D9.H 能正常加入, 咋回事呢
XP下开发的DX9程序在Win7下卡死?
我做的DX9游戏,在Windows7下面运行会卡死,原因不明。rnrn网上爬文发现很多游戏都会在Win7下出现卡死现象,所以我推测应该是有某个或某几个常用的DX模块在Win7下需要做不同的处理,因此请教下各位经验丰富的高手们,可曾遇到并解决过此类<em>问题</em>?
DX9的hge181
hge181,改成了DX9渲染。所有例子和工具在VS2008下调试通过。
dx9顶点数据
<em>dx9</em>顶点数据原代码
dx9初始化
<em>dx9</em> 初始化原代码
SSAO+HDR+deferredshading DX9
DX9写的版本,内容和上个OPENGL版本的一样,不过可能通用性好些,稍微差点的显卡也能用
dx9纹理过滤
<em>dx9</em>纹理过滤原代码
dx9建立设备的怪问题
我的垃圾电脑(我承认是有点旧了)在执行D3DCreateDevice接口的时候只有在全屏模式下才可以成功建立,窗口模式下无论如何也建立不了!为什么?如果我无法建立D3D设备,有什么办法可以知道是什么原因无法建立吗?
DX11 3D半透明渲染
OIT DX11 3D 渲染半透明效果的新算法
dx11 vive sample
官方事例代码的 <em>dx11</em> 版本 openvr 的调用方式
DX11游戏编程入门 中文版
学习D3D11的必备书籍,可以帮助你快速入门D3D11。
DX11渲染管道(2)
DX11渲染管道 (这里看到百度的logo我就生气,他妈的也太恶心了吧,不能直接共享它的图片。真搞不懂,那么牛叉的能力在不用搜索上,小家子气连个图片都不共享,害得哥好几个文章里面都是破图) 这里假设所有的数据都已经进入到GPU端 IA阶段: 1.state数据处理:CP把command packet中state数据通过数据总线送到shader或其它相关block,这些状态数据一般都是设...
易语言的DX11 HOOK
易语言HOOK DX11,用于制作DX11游戏的部分插件的使用以及对DX11的理解
【寒江雪】DX11初始化讲解
DX11初始化  今天来介绍Direct3D-11的初始化方法。初始化Direct3D-11与初始化Direct3D-9有点不同。总体来看,初始化Direct3D-11分为以下几个步骤 描述交换链 创建D3D设备 创建设备上下文接口 创建交换链接口 创建目标渲染视图 创建深度模板缓存视图(可选) 设置视口 描述交换链  首先来介绍什么是交换链。所谓交换链就是一个链表,在链表上的每一个节点用来描述每一
DX11游戏编程入门(中文版)
学习DX编程的好书
DX9中用托管的AudioVideoPlayback问题
用DX9里的AudioVideoPlayback来播放视频真是简单,但我在call了play后play就立刻返回了,于是我就加了while(video.playing),但这样就一直退不出这个循环了,就是说视频播完了状态还是playing,小弟我实在不理解,那要怎么播放一个视频并正确退出呢rn
DX11中渲染到纹理的数据存储问题
以float格式存储到纹理中时,rgba中的a值,如果存储方式不当,可能会导致数据错乱。 <em>问题</em>是在体绘制实验中出现的。 在渲染到纹理的ps shader中,使用如下代码输出坐标值,其中output.vpos类型为float4。 PS_INPUT output = (PS_INPUT)0; output.vpos.xyz = input.Pos.xyz; ...... output....
DX9纹理失真的问题
我用一张800*600的BMP图片作为纹理贴到800*600分辨率的全屏屏幕上,但是图像出现了一定的模糊,不能保持和原图一致,但是在DDRAW下则可以保持和原图一致,请问高手这是为什么呀?
龙书dx11版,Introduction_to_3D_Game_Programming_with_Directx_11
龙书<em>dx11</em>版,Introduction_to_3D_Game_Programming_with_Directx_11,Frank D.Luna,英文版,带书签
DX11渲染管道 :着色器的编译和创建
在不使用效果框架的时候,整个渲染管道其实挺简单的,创建资源,输入资源。编译着色器输入着色器,其实着色器本身也是一种数据,只不过这个数据描述的是逻辑。最后调用一下draw方法画一下就OK 了。这里说说着色器的编译和创建,很简单。   D3DX11CompileFromFile : HRESULT D3DX11CompileFromFile( _In_ LPCTSTR pSrcFile...
DX11游戏编程入门(中文版)
C++描述的DX11,已翻译版本。共享出来,需要的拿走。
DX11创建3D直角坐标系
使用DX11创建的3D直角坐标系,支持旋转
DX11学习实用网站分享
这位大神的博客写的是非常好,强烈推荐 DX11入门,以及各种初期会遇到的<em>问题</em>都可以从这里找到答案 https://www.cnblogs.com/X-Jun/category/1372181.html 这里是项目源码 https://github.com/MKXJun/DirectX11-With-Windows-SDK D3D11官方教程文档 https://code.msdn.microsof...
DX11 ComputeShader5 之超级郁闷!
双精度浮点计算在GPU高性能计算中的重要性我就不说了。这个不是可以有,是必须有。rnCUDA在GPU计算可以说是风头尽显,全世界有200多所大学在教CUDA。遗憾的是CUDA是NVIDIA的显示卡的专利,别人不可以。随着微软DX11的推出,去年AMD推出了支持DX11 ComputeShader5 的ATI5000系列显卡。随后NVIDIA也推出了支持DX11的480/470系列显卡。微软据说也计划将GPU计算命名为Direct Compute。rnrn尝试ATI GPU计算的念头冒了出来,说干就干,于是就开始了下面的尝试之旅。rnrnDX11需要Win7,首先弄了个AMD955的机子,显示卡用的ATI5750,Win7 装好,一切正常。接下来安装了DX11 SDK,使用Compute Shader 5做了一些实验,貌似一切正常。rnrn后来发现不能进行双精度浮点运算,一查资料,ATI5750不支持双精度浮点运算。没办法,又弄来一块 ATI的5850,重复上述实验,<em>问题</em>又出现了。先是有双精度计算的表达式的HLSL语句里面如果有除法,编译的时候就被明确告知双精度不能进行除法计算,我晕,没有除法那还叫双精度计算了?更离奇的还在后面, rndouble x= Buffer0[DTid.x].x;rndouble y= Buffer0[DTid.x].y;rnBufferOut[DTid.x].lon = x*0.01745329251994;rnBufferOut[DTid.x].lat = y*0.01745329251994;rnx、y无论是什么值,BufferOut里面输出结果一律是0,如果rnfloat x;rnfloat y;rn就能得到正确的结果,这不就是说根本就不支持双精度浮点运算么?rnrn看起来这是DX11 ComputeShader5的<em>问题</em>,HLSL语言的<em>问题</em>,这帐不应该记在AMD头上吧?或者说ComputeShader5不完善,有待进一步发展吧。等微软继续完善Direct Compute还是随大流上CUDA? 如果是你,你怎么选?大家多发点意见。rnrn同时征询有关DirectX、GPU计算以及相关硬件、软件方面信息,来者有分。rnrn另:http://topic.csdn.net/u/20100407/03/1c246b75-45d7-4ddc-9243-c67f58768571.html 这个麻烦哪位帮我顶上来,我连续回了3次不让回了,没几个人回的200分的贴呢,有分奖励。 呵呵 :)rn
学习DX11还是OPENGL?
我已经学习DX9有一段时间了,也写过一些小程序。总体感觉DX还不错。rn但我也发现DX一些很难解决的<em>问题</em>。比如:rn1、我写SHADOW MAP时,用D3DDEVTYPE_REF时,结果正确,但用HAL时结果错误。我根本找不出错误出在哪里。因为每一个调用的HRESULT返回值都是正确的。RENDER TARGET中的数据也是正确的。rn2、在VC2005环境下编译程序是正确的,但DEBUG条件下,单独运行编译后的程序异常。rn3、单独运行程序是正确的,但用PIX for Windows加载程序时出错,没有办法调度程序。并且PIX浮点值精度只有小数点后三位。MY GOD,RENDER TARGET存储的深度值最大都要精确到小数点后5位的,根本不知道数据是否正确!rn4、这样造成调试SHADER非常困难。rnrn最近新换了台电脑,想学习下DX11,但是考虑到上面的因素,还不如学习下OPENGL。但又担心OPENGL还不如DX。rn请问各位前辈OPENGL调试SHADER的工具完备吗,调试SHADER时容易吗?rn我到底是应该学习DX11还是OPENGL?谢谢!
易语言DX11绘制框架
n 本季度课程,主要就是结合第一季度搜索到的数据,写入编程语言【E语言】中,在这里一步一步的实现作弊的效果,从而理解其过程如何实现的,也就能更好的做到反作弊!n
DX11 游戏开发笔记 (二) DX11 基础框架 上
必须吐槽csdn的排版,真的是对不起它的名字! 抱了很大的决心,才决定写下这篇博文,笔者大三从其它专业转行,学习c c++也就一年多,因为入了游戏这坑, 故选择在游戏引擎这块泥泞的道路上前进,且行且开心吧。 不得不吐槽一句,国内想学游戏<em>开发</em>还真是有点难度,幸好有前辈的发掘,我们现在才好走一点。 前辈博客:https://blog.csdn.net/bonchoix?t=1 。 近来看了《...
18-20_综合_调试优化_DX11
《Direct3D HLSL高级实例精讲》光盘源码。由于整个源码大小超过了CSDN的上传限制,因此将其分章节上传。源码及相关资源版权归原作者所有,仅作学习交流,严禁用于商业目的!
DX11龙书中译.rar
DX11龙书的中文翻译,每个小章节是一个单独的word文档,不带目录和引言
我的VS2010怎么没有DX11?
我想练习用C# DirectX 编程。rn我的系统是WIN7 64, 用 dxdiag 可以看到我是装了 DirectX11 的。rn但我的 vs2010 里,using Mircosoft 里就是没有 DirectX,就是说我没法输入 using Microsoft.DirectXrn我用文件搜索也找不到DirectX.dll。rn请问这是怎么回事呢?rn谢谢!
求救:Dx9下开发的运行时候用户一定要安装Dx9吗?
我用<em>dx9</em><em>开发</em>了一个视频监控程序,发现对方一定要安装<em>dx9</em>才能运行,有什么办法可以不装<em>dx9</em>也能运行吗?
用DX11开发的软件能在XP上运行吗?
如题
dx9做的阴影效果
<em>dx9</em>做的阴影效果代码
Delphi DX9 SDK
Delphi <em>dx9</em> sdk声明模块。用于DirectX的相关<em>开发</em>。
谁有DX9的中文帮助?
我这个DX在安装的过程中还真看见过中文。但是安装之后,在Document文件夹下的两个CHM都是英文的。一个struct就有几十个成员,全英文的吓死人了。
dx9纹理子调用
<em>dx9</em>纹理子调用原代码
DX9 顶点缓存案例
// @time 2012.3.5 // @author jadeshu //包含头文件 #include &amp;lt;Windows.h&amp;gt; #include &amp;lt;d3d9.h&amp;gt; #pragma comment(lib,&quot;d3d9.lib&quot;) //自定义 #define ReleaseD3D(x) if (x!=NULL){x-&amp;gt;Release();x=NULL;} //...
DX9 是一个什么东西
DX9是一个什么东西.也是对API的封装吗?
pl/sql developer 8.0 中文版+注册机下载
pl/sql developer 8.0 中文版+注册机注意:这个只是汉化包和注册机安装程序下载地址:http://download.csdn.net/source/3280502 相关下载链接:[url=//download.csdn.net/download/etong532/3280516?utm_source=bbsseo]//download.csdn.net/download/etong532/3280516?utm_source=bbsseo[/url]
JavaScript面向对象编程指南下载
原书名: Object-Oriented JavaScript: Create scalable, reusable high-quality JavaScript applications and libraries. JavaScript作为一门浏览器语言的核心思想;    面向对象编程的基础知识及其在JavaScript中的运用;    数据类型、操作符以及流程控制语句;    函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;    BOM 、DOM、浏览器事件、AJAX和JSON;    如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;    相关下载链接:[url=//download.csdn.net/download/zhouruitao/5300035?utm_source=bbsseo]//download.csdn.net/download/zhouruitao/5300035?utm_source=bbsseo[/url]
Java jdbc数据库连接池总结下载
在Java语言中,JDBC(Java DataBase Connection)是应用程序与数据库沟通的桥梁 相关下载链接:[url=//download.csdn.net/download/u010886191/6513623?utm_source=bbsseo]//download.csdn.net/download/u010886191/6513623?utm_source=bbsseo[/url]
相关热词 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法 c# gmail 发邮件 c# 多层文件
我们是很有底线的