Direct3D学习(三):光影贴图

刚看完了DXUT,拿来练练手 这个框架却实方便啊,终于不用写那些令人恶心的API函数了 光影贴图,说白了就是在纹理上表现出来光影效果,并不是实时计算的,所以适用于固定的场影平面,如地面,墙壁等 原理嘛,就是多层纹理的叠加,除了模型本身的纹理外,还需要光纹理

效果如图

关键代码如下:

        pd3dDevice->SetTexture( 0, pTexture0 );        /// 在0号纹理层固定纹理(壁面)
        pd3dDevice->SetTexture( 1, pTexture1 );        /// 在1号纹理层固定纹理(光影贴图)

        pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, 0 );    /// 0号纹理:使用0号纹理索引
        pd3dDevice->SetTextureStageState( 1, D3DTSS_TEXCOORDINDEX, 0 );    /// 1号纹理:使用0号纹理索引
        pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );    /// 0号纹理层的放大滤镜
        pd3dDevice->SetSamplerState( 1, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );    /// 1号纹理层的放大滤镜
        pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP,   D3DTOP_SELECTARG1 );
        pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
        pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP,   D3DTOP_SELECTARG1 );
        pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );

        pd3dDevice->SetTextureStageState( 1, D3DTSS_COLOROP,   D3DTOP_MODULATE );    /// 运用MODULATE运算进行颜色混合
        pd3dDevice->SetTextureStageState( 1, D3DTSS_COLORARG1, D3DTA_TEXTURE );
        pd3dDevice->SetTextureStageState( 1, D3DTSS_COLORARG2, D3DTA_CURRENT );
        pd3dDevice->SetTextureStageState( 1, D3DTSS_ALPHAOP,   D3DTOP_DISABLE );

        pd3dDevice->SetTextureStageState( 2, D3DTSS_COLOROP,   D3DTOP_DISABLE );
        pd3dDevice->SetTextureStageState( 2, D3DTSS_ALPHAOP,   D3DTOP_DISABLE );

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据小魔方

帕累托图(Pareto Chart)

今天要跟大家分享的图表是帕累托图! ▽▼▽ 这种图表类似于之前曾分享过的直方图,但是又比直方图所能展现的数据信息更多,由一个降序排列的柱形图和一个升序排列的带数...

3855
来自专栏编程

一行JS代码实现翻翻卡效果

本文章是由源码时代H5前端讲师分享:一行JS代码实现翻翻卡效果,希望对大家有一定帮助。 实现步骤 准备2张图片,一个在上一个在下 上方的图片不动,下方的图片先翻...

3438
来自专栏Petrichor的专栏

opencv: cv2.flip 图像翻转 进行 数据增强

Flipped Horizontally & Vertically 水平垂直翻转:

7424
来自专栏Python小屋

一行Python代码计算两点间曼哈顿距离

以下图为例,图中白色方块表示楼房,是无法穿越的,只能绕行,那么从左下角出发到达右上角,红色、蓝色、黄色三条路线的距离是相等的,也就是所谓曼哈顿距离,或者实际行走...

3535
来自专栏深度学习之tensorflow实战篇

Python生成词云图,TIIDF方法文本挖掘: 词频统计,词云图

python中使用wordcloud包生成的词云图。 下面来介绍一下wordcloud包的基本用法。 class wordcloud.WordCloud(fon...

5086
来自专栏深度学习思考者

一文搞懂Matlab画图那些事(上篇)

题记:临时需要Matlab画个曲线图,突然发现有些命令竟然忘掉了,于是各种查。这里博主整理合并关于画图那些命令,只为让你轻松搞定Matlab画图这些琐事,那么,...

3527
来自专栏PPV课数据科学社区

数据挖掘知识脉络与资源整理(七)–饼图

? ? 简介 饼图英文学名为Sector Graph, 有名Pie Graph。常用于统计学模块。2D饼图为圆形,手画时,常用圆规作图。 仅排列在工作表的一...

2947
来自专栏JackeyGao的博客

使用Python将两张照片透明重叠

透明重叠最主要用的是Image.blend方法(详情请看第二个代码块), 第一个代码块主要是将多个图片剪切到一张大图, 然后用这张大图和另外一张非剪切的大图进行...

2661
来自专栏重庆的技术分享区

HTML5-canvas之绘制圆弧和贝塞尔曲线(3)

2092
来自专栏coding for love

CSS进阶12-网格布局 Grid Layout

(注1:如果有问题欢迎留言探讨,一起学习!转载请注明出处,喜欢可以点个赞哦!) (注2:更多内容请查看我的目录。)

972

扫码关注云+社区

领取腾讯云代金券