WJ的Direct3D简明教程2:Render-To-Texture

2023-10-27

转载请注明:来自http://blog.csdn.net/skyman_2001

Rendering to a texture is one of the advanced techniques in Direct3D. On the one hand it is simple, on the other hand it is powerful and enables numerous special effects, such as glow effect, environment mapping, shadow mapping, and many more. Rendering to a texture is simply an extension to rendering to a surface.
1. Create the texture:
LPDIRECT3DTEXTURE9 pRenderTexture = NULL;
LPDIRECT3DSURFACE9 pRenderSurface = NULL, pBackBuffer = NULL;

pDevice()->CreateTexture(256, // width
256, // height
1, // number of mip levels
D3DUSAGE_RENDERTARGET, // must be!
D3DFMT_R8G8B8, // format
D3DPOOL_DEFAULT, // memory pool(must be!)
&pRenderTexture,
NULL);
2. Get the surface:
In order to access the texture memory a surface object is needed, because a texture object in Direct3D always uses such a surface to store its data.

pRenderTexture->GetSurfaceLevel(0,&pRenderSurface); // top-level surface
3. Render to the texture:
pDevice()->GetRenderTarget(0,&pBackBuffer); // back buffer

// render-to-texture
// set new render target
pDevice()->SetRenderTarget(0,pRenderSurface);
//clear texture
pDevice()->Clear(0,
NULL,
D3DCLEAR_TARGET D3DCLEAR_ZBUFFER,
D3DCOLOR_XRGB(255,255,255),
1.0f,
0);
// render the scene
pDevice()->BeginScene();
...
pDevice()->EndScene();
4. Render the final scene using the texture:
// render scene with texture
// set back buffer
pDevice()->SetRenderTarget(0,pBackBuffer);
pDevice()->Clear(0,
NULL,
D3DCLEAR_TARGET D3DCLEAR_ZBUFFER,
D3DCOLOR_XRGB(0,0,0),
1.0f,
0);
pDevice()->BeginScene();
// set rendered texture
pDevice()->SetTexture(0,pRenderTexture);
// render the final scene
...
pDevice()->EndScene();
pDevice()->Present(NULL,NULL,NULL,NULL);

Lastly, there are some restrictions you have to take care of: (1) the depth stencil surface must always be greater or equal to the size of the render target; (2) the format of the render target and the depth stencil surface must be compatible and the multisample type must be the same.  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WJ的Direct3D简明教程2:Render-To-Texture 的相关文章

  • null 和空 ("") Java 字符串之间的区别

    有什么区别null和 空字符串 我写了一些简单的代码 String a String b null System out println a b false System out println a equals b false 两个语句都
  • 用于接收 UDP 数据包的可变大小缓冲区

    我有一个 UDP 套接字 它将接收一些可能不同大小的数据包 并且我异步处理它 socket async receive from boost asio buffer buffer 65536 senderEndpoint handler 这
  • 比较()中的空字段该怎么办?

    在Java中 我使用一个类 其中一些字段可以null 例如 class Foo String bar 我想为这个类写一个BarComparator private static class BarComparator implements
  • WordPress 数据库 insert() 和 update() - 使用 NULL 值

    WordPress 附带wpdb处理 CRUD 操作的类 我感兴趣的这个类的两个方法是insert CRUD 中的 C 和update CRUD 中的 U 当我想将 NULL 插入 mysql 数据库列时出现问题 wpdb类将 PHP 空变
  • Powershell Clear-Host 保留缓冲区的替代方案

    我想要像 Clear Host 这样的东西 但想要回滚 到目前为止 我所做的基本上就是添加换行符 直到屏幕清晰为止 尽管当我这样做时 光标开始在页面底部书写 正如预期的那样 尽管不是期望的 我希望从页面顶部开始书写 对于菜单等 这是很自然的
  • 从 pandas 数据框中删除具有空值的行

    我正在尝试从数据框中删除一行 其中其中一列的值为空 我能找到的大部分帮助都与删除 NaN 值有关 到目前为止 这对我不起作用 我在这里创建了数据框 successfully crated data frame df1 ut get data
  • 如何将空日期变量传递到 SQL Server 数据库

    我正在寻找最佳实践 真正的解决方案 以发送Null当日期未知时 到 SQL Server 2008 R2 数据库表 我从表单视图中读取了一些输入 并且日期字段可能未知 数据库允许字段中存在 Null 值 但 VB 在参数化查询更新之前存储
  • BufferedWriter在java中如何工作

    我经常将文本输出到文件中 我想知道一件事 怎么办BufferedWriterwork 当我打电话时它会在文件中写入文本吗writer write text 如果不写文本 我需要使用flush函数来写数据吗 例如 File file new
  • 如何避免在 Java 中检查空值?

    I use x null避免NullPointerException https docs oracle com javase 9 docs api java lang NullPointerException html 还有其他选择吗 i
  • 空值并不唯一

    我在 postgres 上有这样的行 name address college john rome john rome max tokyo 我创建一个这样的表 create test name varchar 10 address varc
  • 为什么启用自动刷新后使用空打印?

    我在一段代码中发现了类似的东西 use IO Handle autoflush STDOUT 1 print 打印 的目的是清空可能已满的缓冲区吗 The print强制立即输出缓冲区中的所有文本 来自先前的打印 该代码基本上禁用缓冲并刷新
  • 如何消除SQL中的NULL字段

    我正在为 SQL Server 2008 R2 开发 TSQL 查询 我正在尝试开发此查询来识别一条记录 客户 由于其中一些值为 NULL 因此我目前正在对大多数表执行 LEFT JOINS 但 LEFT JOIN 的问题是 现在我为某些客
  • 无法检查 int 是否为 null

    我正在尝试使用字典 每当我想检查字典中是否存在某个元素时 我都会这样做 int value results get aKeyThatMayOrMayNotBePresent if value null 但编译器说我无法比较int to a
  • 如何通过 JOIN 组合(合并)相似的列以删除 NULL

    问题简介 我有一个名为 客户 的超类表和两个从客户继承的名为 个人 和 公司 的子表 因此 客户实体与 人 或 公司 具有一对一的关系 客户只能是 个人 或 公司 但不能同时是两者 如下所示 Customer Person Company
  • 在C语言中,NULL指针和指向0的指针有区别吗?如果是这样,那又怎样?

    在C语言中 NULL指针和指向0的指针有什么区别 ISO IEC 9899 TC2 中规定6 3 2 3 Pointers 3 值为 0 的整型常量表达式 或这样的表达式 强制转换为 void 类型 称为空指针常量 55 如果 null 指
  • 无法获取 GED 日志缓冲区,错误(0)

    我的 Android 项目有一个大问题 那就是error Failed to get GED Log Buf err 0 我真的不知道该怎么办以及如何解决它 有人可以帮我吗 非常感谢 Find Advanced logging在你手机的De
  • 在 Golang Server 中接受持久的 tcp 连接

    我正在尝试使用 Go 并且想创建一个 TCP 服务器 我可以通过 telnet 访问该服务器 发送命令并接收响应 const CONN HOST localhost CONN PORT 3333 CONN TYPE tcp func mai
  • 为什么这个简单的 MySQL 查询不返回该行?

    我在表中有一行users与用户名test 但由于某种原因 此查询返回空结果集 SELECT id FROM users WHERE username test AND id null 但是 如果我删除 id null段 查询返回结果id 1
  • Groovy 中 Null Object 类的用途是什么?

    我已经使用 Groovy 五个小时了 刚刚发现Groovy NullObject http groovy codehaus org api index html org codehaus groovy runtime NullObject
  • C 中的 NULL 是否需要/定义为零?

    在我的 GCC 测试程序中 NULL 似乎为零 但维基百科说NULL只需要指向不可寻址的内存 有编译器做吗NULL非零 我很好奇是否if ptr NULL 是比更好的练习if ptr NULL is guaranteed to be zer

随机推荐

  • web开发-高德地图api2.0-点聚合-包含设置非聚合点的事件绑定以及样式

    web开发 高德地图api2 0 点聚合 包含设置非聚合点的事件绑定以及样式 下面展示一些 内联代码片 非聚合点数据 lnglat里的坐标不一定要双引号 var points weight 8 lnglat 108 939621 34 34
  • Monitoring(监控)

    Monitoring and Instrumentation 有几种方法可以监控Spark应用程序 Web UI 指标和外部检测 Web Interfaces 默认情况下 每个SparkContext都会在端口4040上启动Web UI 以
  • P2661 信息传递(tarjan求强连通分量模板题)

    minn为最小强连通分量的点数 include
  • 企业微信PC版应用跳转到默认浏览器,避坑指南,欢迎补充。。。

    文章目录 引子 坑一 写代码 前端页面 后端代码 企业微信设置 坑二 网页授权及JS SDK 坑三 配置企业可信IP 最后 引子 我们公司内部用企业微信沟通 最近有个需求 一个应用在企业微信PC版打开时 要自动跳转到PC的默认浏览器 在开发
  • Java 奇偶分离

    public class MiddleHalf public static void main String args int nums 1 4 3 5 0 3 10 int result sortArrayByParity nums fo
  • C++ · 冒泡排序与选择排序

    九月份的第一篇文章 好久没更新了 想起上一次更新还是在上一次 那今天咱们来聊一聊C 中的冒泡排序与选择排序 冒泡排序 排序原理与思想 依次比较相邻的两个数 把大的放前面 小的放后面 即首先比较第1个数和第2个数 大数放前 小数放后 然后比较
  • 【蓝桥杯JavaB组真题详解】三部排序(2013)

    题目描述 三部排序 一般的排序有许多经典算法 如快速排序 希尔排序等 但实际应用时 经常会或多或少有一些特殊的要求 我们没必要套用那些经典算法 可以根据实际情况建立更好的解法 比如 对一个整型数组中的数字进行分类排序 使得负数都靠左端 正数
  • LeetCode(14):最长公共前缀

    描述 编写一个函数来查找字符串数组中的最长公共前缀 如果不存在公共前缀 返回空字符串 示例 输入 flower flow flight 输出 fl 输入 dog racecar car 输出 解释 输入不存在公共前缀 class Solut
  • 红米note9pro刷鸿蒙,红米Note9Pro稳定版刷机包(官方系统固件升级包MIUI11)

    Redmi Note 9 Pro采用6 67英寸打孔屏 搭载高通骁龙750G 内置4820mAh大电池 搭载前后双玻璃机身 覆盖大猩猩第五代玻璃 正面为居中挖孔全面屏设计 6 67英寸屏幕 保留3 5mm耳机孔 采用侧面指纹识别 背部为居中
  • 微信小程序分享功能总结

    小程序实现分享功能有如下三种方式 1 在js文件中实现onShareAppMessage函数 即可点击右上角菜单分享给微信好友 页面中默认已实现 在js文件中实现onShareTimeline函数 即可点击右上角菜单分享到微信朋友圈 需要自
  • 联盟链走向何方

    联盟链技术哪家强 开源架构Fabric FISCO BCOS 以下简称 BCOS CITA 技术对比 出品 碳链价值研究院 01 摘要 第 46 届世界经济论坛达沃斯年会将区块链与人工智能 自动驾驶等一并列入 第四次工业革命 经济学人 曾在
  • qt5.5.1 移植4412的问题过程

    编译错误 WTF wtf unicode wchar UnicodeWchar h In function bool WTF Unicode isAlphanumeric UChar WTF wtf unicode wchar Unicod
  • 开源项目部署之悟CRM部署 PHP服务端版

    文章目录 前言 一 部署环境 二 部署流程 1 安装宝塔等基础环境 2 部署CRM 点击安装即可 在这里插入图片描述 https img blog csdnimg cn 4f83ede5d3f74343a927f8a641c25e19 pn
  • 助推打造全球研发中心城市

    阿里 社招 一面 面不动了 真的面不动了一 项目挑一个你觉得最有挑战性的细说 有些细节被质疑了 嘴在前面飞脑子在后面追 以后说每一句话都要小心 笑cry 二 八股1 聚簇索引和非 题解 检索产品名称和描述 一 select prod nam
  • 3D关键点检测(2020-2017)

    3D关键点检测 1 3D关键点检测之PoseDRL Deep Reinforcement Learning for Active Human Pose Estimation AAAI2020 这篇文章可能与我们通常所处理的姿态估计任务略有不
  • 【BEV】BEVDet

    BEVDet 解析 BEVDet 模型 bevdet r50 训练配置 Scale NMS 优化配置 推理记录 注册 随机种子 总结 BEVDet BEVDet继承于CenterPoint gt MVTwoStageDetector 模型实
  • 射频工程师笔记---射频通信基础

    文章更新或问题可关注本人公众号 回顾一下移动通信技术的发展 其实是互联网和通信技术的融合过程 在这个过程中 很多应用都在不断加入其中 比如计算机跟通信的融合产生了互联网 互联网跟手机的融合带来了移动互联网 手机可以看杂志 看视频 听音乐 于
  • SpringCLoud——服务的拆分和远程调用

    服务拆分 服务拆分注意事项 一般是根据功能的不同 将不同的服务按照功能的不同而分开 微服务拆分注意事项 不同微服务 不要重复开发相同业务 微服务数据独立 不要访问其他微服务的数据库 微服务可以将自己的业务暴露为接口 供其他微服务调用 远程调
  • C++ 数据结构与算法(五)(哈希表)

    哈希表 1 定义 哈希表 Hash table 也称散列表 是根据关键码的值而直接进行访问的数据结构 一般哈希表都是用来快速判断一个元素是否出现集合里 只需要在初始化时用哈希函数 hash function 将这些元素映射在哈希表的索引上
  • WJ的Direct3D简明教程2:Render-To-Texture

    转载请注明 来自http blog csdn net skyman 2001 Rendering to a texture is one of the advanced techniques in Direct3D On the one h