• 笔记


    改变D3D中的渲染状态

    1). 设置着色模式:                                                        
    SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT) //设置平面着色模式
    SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD) //设置格劳德着色模式

    2). 设置多边形填充模式:
    SetRenderState(D3DRS_FILLMODE, D3DFILL_POINT) //点填充模式,D3D在多边形的每个顶点绘制一个像素
    SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME) //线填充模式,D3D在多边形的每个边绘制一条线
    SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID)   //面模式,D3D默认模式,对多边形的面进行填充

    3). 设置全景图形抗锯齿:
    SetRenderState(D3DRS_MUTISAMPLEANTIALIAS, TRUE)   //抗锯齿
    SetRenderState(D3DRS_MUTISAMPLEANTIALIAS, FALSE)   //不抗锯齿

    4). 设置剔除模式:
    SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE) //不剔除任何面

    5). 设置光照模式:
    SetRenderState(D3DRS_AMBIENT, D3DCOLOR ambientColor); //为整个场景设置环境光
    SetRenderState(D3DRS_SPECULARENABLE, TRUE);   //激活镜面反射计算(D3D默认情况下关闭)

    6). 启动/关闭深度测试:
    SetRenderState( D3DRS_ZENABLE, TRUE );    //启用深度测试

    7) 设置纹理过滤器

      //线性纹理
    SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
    SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);

      //最近点采样
    SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_ POINT);
    SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_POINT);

      //各向异性纹理过滤
    SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_ANISOTROPIC)
    SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_ ANISOTROPIC);

    8)
    SetRenderState( D3DRS_POINTSCALEENABLE, TRUE ); //打开缩放功能

    9)
    SetRenderState( D3DRS_POINTSCALE_A , FtoDW( 1.00f ));//设置因子,下同
    SetRenderState( D3DRS_POINTSCALE_B , FtoDW( 1.00F ));
    SetRenderState( D3DRS_POINTSCALE_C , FtoDW( 1.00f ));

    10)
    SetRenderState( D3DRS_POINTSIZE_MAX, FtoDW( 5.00f ));//设置点大小上限,下类似
    SetRenderState( D3DRS_POINTSIZE_MAX, FtoDW( 5.00f ));
    SetRenderState( D3DRS_POINTSPRITEENABLE , TRUE ) ;  //打开点精灵效果
    SetRenderState( D3DRS_AMBIENT,  0xffffffff );  //设置环境光颜色开启 ALPHA混合效果

    11)
    设置混合因子:
    源:SetRenderState( D3DRS_SRCBLEND , D3DBLEND_SRCALPHA );
    目的:SetRenderState( D3DRS_DESTBLEND , D3DBLEND_INVSRCALPHA);
    第二个参数是 D3DBLEND的枚举结构。

  • 相关阅读:
    0593. Valid Square (M)
    0832. Flipping an Image (E)
    1026. Maximum Difference Between Node and Ancestor (M)
    0563. Binary Tree Tilt (E)
    0445. Add Two Numbers II (M)
    1283. Find the Smallest Divisor Given a Threshold (M)
    C Primer Plus note9
    C Primer Plus note8
    C Primer Plus note7
    C Primer Plus note6
  • 原文地址:https://www.cnblogs.com/kirito/p/2850088.html
Copyright © 2020-2023  润新知