zoukankan      html  css  js  c++  java
  • DirectX9:第三章 渲染器状态

    一.简介

    二.着色器模式

    1.平面着色

    平面着色使得每个图元的每个像素都被赋予该图元第一个顶点所指定的颜色

    Device->SetRenderState(D3DRS_SHADEMODE,D3DSHADE_FLAT);
    

     2.格劳德着色

    格劳德着色时得图元表面各像素的颜色值由各顶点的颜色进行线性插值得到

    Device->SetRenderState(D3DRS_SHADEMODE,D3DSHADE_GOURAUD);
    

    三.总结

    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的枚举结构。
    
  • 相关阅读:
    grpc学习
    01
    样本1
    杀死长时间占用CPU的进程
    SWFTools pdf2swf 参数详解
    C#自动下载并保存文件示例
    Flex初始化时加载外部XML
    通过XPDF抽取PDF中的中文文本
    Flex操作Json数据示例
    C#下载文件和将文件转换为数据流下载的示例
  • 原文地址:https://www.cnblogs.com/k5bg/p/11091156.html
Copyright © 2011-2022 走看看