
DirectX
mengzhisuoliu
我有我自由你有感受
展开
-
D3DCULL_CW 和 D3DCULL_CCW
D3DCULL_CW Cull back faces with clockwise vertices.(剔除顺时针的顶点)D3DCULL_CCW Cull back faces with counterclockwise vertices. (剔除逆时针的顶点)clockwise 是顺时针的意思,有时候总翻译英文,导致理解有点不对,counterclockwise是逆时针,注意这个是剔除的动作...原创 2018-07-12 21:52:07 · 952 阅读 · 0 评论 -
D3D的混合源和目标(Source 和 Destion)
D3D混合的时候经常遇到Src和Dest两个字眼,究竟Src 是指当前需要绘制的内容还是已经绘制的内容,以免把他们搞乱,今天记录一下。Src:正在绘制的内容,接下来需要绘制的内容Dest:表示已经绘制的内容,有些书上只子缓冲区的像素,或者理解为屏幕已显示的内容...原创 2018-07-04 16:33:03 · 657 阅读 · 0 评论 -
D3DX 效果正确使用
今天在玩雾测试的时候,法线雾是出来了,但是绘制的内容都是雾的颜色,找了半天才发现是这个问题LPD3DXEFFECT->SetTechnique(技术句柄)LPD3DXEFFECT->Begin(nPass,0)LPD3DXEFFECT->BeginPass(i) LPDIRECT3DDEVICE9->SetTransform LPDIRECT3D...原创 2018-06-29 14:24:27 · 1189 阅读 · 0 评论 -
D3DXCreateTeapot,D3DXCreateSphere,D3DXCreateTorus,D3DXCreateCylinder函数参数图解
原创 2018-06-19 23:51:52 · 1313 阅读 · 0 评论 -
DrawIndexedPrimitive 各个参数的解释
DrawIndexedPrimitive( D3DPT_TRIANGLELIST, // PrimitiveType 50, // BaseVertexIndex 0, // MinIndex 4, ...原创 2018-06-07 15:21:09 · 1124 阅读 · 0 评论 -
D3D TriangleStripe 的绘制流程
int nVertextCount=8;//8个顶点 int nVertextTotal=nVertextCount*sizeof(D3DVertexXYZUV1); LPDIRECT3DVERTEXBUFFER9 &pVertextBuffer=m_pVertextBuffer; HRESULT hr=S_OK; if (FAILED( hr=pDevice3D->CreateVer原创 2018-01-30 15:33:30 · 367 阅读 · 0 评论 -
DirectX png 绘制
//要打开Alpha混合,否则会导致显示图片不正确,比如白茫茫一片 pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE);//开启Alpha混合 pDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);//设置源混合因子,混合因子之源Alpha pDevice->SetRen原创 2018-01-23 11:58:35 · 1287 阅读 · 0 评论 -
D3DXMatrixPerspectiveFovLH
D3DXMATRIX * D3DXMatrixPerspectiveFovLH( __inout D3DXMATRIX *pOut, __in FLOAT fovy, __in FLOAT Aspect, __in FLOAT zn, __in FLOAT zf);参数解析如下:pOut [in, out] D3DXMATR原创 2018-01-17 22:12:59 · 414 阅读 · 0 评论 -
D3DXMatrixLookAtLH 函数详解
一般我们设置视图矩阵就按照下面的方法设置 D3DXMATRIX matView; //定义一个矩阵 D3DXVECTOR3 vEye(0.0f, 20.0f, -30.0f); //摄像机的位置 D3DXVECTOR3 vAt(0.0f, 10.0f, 0.0f); //观察点的位置 D3DXVECTOR3 vUp(0.0f, 1.0f, 0.0f);//向上的向量,表示3D坐标系中向原创 2018-01-17 15:36:52 · 2263 阅读 · 0 评论 -
顶点的法线计算方式
如果一个顶点的法线共享多个三角形,我们还需要对此法线进行均值计算,如下伪代码void CalculationNormalVector(){ for(int i=0;i<m_Vertices.size();i+=3) { Vector3D normal=CrossProduct( (m_Vertices[i+1].m_Position-m_Vertices[i].m_Positio原创 2018-01-11 20:08:07 · 6868 阅读 · 0 评论 -
d3d 矩阵记录
//单位矩阵:任何矩阵与它相乘都等于自己void CMatrix4_4::Identity(){ memset(this,0,sizeof(CMatrix4_4) );//全部都设置为0 //主对角线的元素都为1 this->matrix[0]=1.0f; this->matrix[5]=1.0f; this->matrix[10]=1.0f; this->matrix[15]=1原创 2018-01-10 21:13:27 · 433 阅读 · 0 评论 -
向量点积,叉积,向量点乘和余弦的关系推导
//点积,如果 v1,v2 是单位向量,返回是u,v夹角的余弦//返回值 //== 0,表示v1,v2垂直//> 0 ,两个向量之间的夹角大于90度//<0,两个向量之间的夹角小于90度//D3DXVec3Dotfloat VecDotProduct(Vector3d v1,Vector3d v2){ return v1.x*v2.x+v1.y*v2.y+v1.z*v2...原创 2018-01-10 20:59:10 · 4643 阅读 · 0 评论 -
d3d 中的平截体的意思frustum
图中红色框中的部分就是平截头体(堆有一部分给截掉了),也可以理解为视锥,这就是相机拍摄的范围原创 2018-01-10 20:27:37 · 790 阅读 · 0 评论 -
d3d 顶点归一化的原理和作用
void NormalizeVec(stD3DVertex &v) { // Normalize normal. float lenght = (float)sqrt((v.x * v.x + v.y * v.y +原创 2018-01-10 09:44:31 · 781 阅读 · 0 评论 -
D3D RHW的理解
RHW(Reciprocal of Homogeneous W[1])英文原文意思:The RHW value, which stands for Reciprocal of Homogeneous W[1], tells Direct3D that the vertices thatare being used are already in screen coordinates.转载 2017-12-30 15:39:46 · 2118 阅读 · 0 评论 -
D3D 光照与RGB颜色生成基本原理
1.每个顶点坐标计算出u,v两个向量,其实也就是顶点坐标 2.计算出u,v两个向量的法线N 通过叉乘可以计算出垂直于两个向量的向量结果(法线) D3DXVECTOR3 N=D3DXVec3Cross(&u,&v) 3.法线N与光照向量的夹角就是RGB生成的系数r rgb=rgb*r原创 2017-12-19 20:39:04 · 685 阅读 · 0 评论 -
DirectX 的默认灯光
在D3D实践的过程中,如果你代码没有指定场景的灯光,灯光默认是黑色的,如果又不想使用灯光又想看到绘制的物体可以使用 _device->SetRenderState(D3DRS_LIGHTING,false);关闭灯光原创 2017-12-19 17:52:17 · 502 阅读 · 0 评论