<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[寂蝶难双，窃窃思羽.]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/SwordArcher</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; SwordArcher]]></copyright><item><title><![CDATA[进程间通讯方式]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/144890897</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/144890897</guid><author>SwordArcher</author><pubDate>Thu, 02 Jan 2025 17:57:45 +0800</pubDate><description><![CDATA[进程以先进先出的方式从缓冲区存取数据：管道一端的进程顺序地将进程数据写入缓冲区，另一端的进程则顺序地读取数据，该缓冲区可以看做一个循环队列，读和写的位置都是自动增加的，一个数据只能被读一次，读出以后在缓冲区都不复存在了。共享内存允许两个或多个进程共享一个给定的存储区，这一段存储区可以被两个或两个以上的进程映射至自身的地址空间中，一个进程写入共享内存的信息，可以被其他使用这个共享内存的进程，通过一个简单的内存读取错做读出，从而实现了进程间的通信。：信号量是一个计数器，可以用来控制多个进程对共享资源的访问。]]></description><category></category></item><item><title><![CDATA[可变参数模版]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/143977347</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/143977347</guid><author>SwordArcher</author><pubDate>Fri, 22 Nov 2024 17:24:29 +0800</pubDate><description><![CDATA[一个可变参数模版就是一个接受模板函数模板类，可变数目的参数被称为。我们用一个来指出一个模板参数或函数参数表示一个包，在函数参数列表中，如果一个参数的类型是一个模板参数包，则此参数也是一个函数参数包。]]></description><category></category></item><item><title><![CDATA[tuple元组]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/143976114</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/143976114</guid><author>SwordArcher</author><pubDate>Fri, 22 Nov 2024 16:08:18 +0800</pubDate><description><![CDATA[当我们希望一些数据组合成单一对象时，可以使用tuple，一个tuple可以有任意数量的成员，成员的类型可以各不相同，每个确定的tuple类型的成员数目是固定的。]]></description><category></category></item><item><title><![CDATA[滑动窗口的使用]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/143763547</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/143763547</guid><author>SwordArcher</author><pubDate>Thu, 14 Nov 2024 15:20:51 +0800</pubDate><description><![CDATA[滑动窗口是一种流量控制技术，也用于管理和处理数据流。它通过定义一个固定大小或可根据特定条件动态调整的窗口，在数据流或数据序列上滑动，以便高效地处理其中的数据。这种技术能够限制同时处理的数据量，从而控制资源消耗并提高处理效率。]]></description><category></category></item><item><title><![CDATA[平衡二叉树(AVL树)]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/143747863</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/143747863</guid><author>SwordArcher</author><pubDate>Wed, 13 Nov 2024 19:00:53 +0800</pubDate><description><![CDATA[平衡二叉树是一种，其中每一个节点的，它是一种高度平衡的二叉排序树，我们将二叉树上节点的左子树深度减去右子树深度的值称为，那么平衡二叉树上所有结点的平衡因子只可能是。只要二叉树上有一个节点的平衡因子的绝对值大于1，则该二叉树就是不平衡的。平衡二叉树的查找，是比较理想的一种动态查找表算法。距离，且平衡因子的绝对值大于1的结点为根的子树，称为。]]></description><category></category></item><item><title><![CDATA[二叉排序树]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/94396052</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/94396052</guid><author>SwordArcher</author><pubDate>Wed, 13 Nov 2024 16:53:28 +0800</pubDate><description><![CDATA[在说二叉排序树之前先考虑这样一个例子，假设我们的数据集开始只有一个数{62}，然后现在需要将88插入数据集，于是数据集成了{62,88}，还保持着从小到大有序，再查找有没有58，没有则插入，可此时要想在线性表的顺序存储中有序，就得移动62和88的位置，如图所示，可不可以不移动呢？当然是可以，那就是二叉树结构，当我们用二叉树的方式时，首先将第一个数62定为根结点，88因为比62大，因...]]></description><category></category></item><item><title><![CDATA[运算符重载]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/88877109</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/88877109</guid><author>SwordArcher</author><pubDate>Wed, 13 Nov 2024 14:52:50 +0800</pubDate><description><![CDATA[重载运算符函数的参数与该运算符作用的运算对象数量一样多，一元运算符有一个参数，二元运算符有俩个，对于二元运算符来说，左侧运算对象传递给第一个参数，而右侧运算对象传递给第二个参数，除了重载函数调用运算符operator()之外，其他重载运算符不能含有默认实参。
   如果一个运算符函数是成员函数，则它的第一个(左侧)运算符对象绑定到隐式的this指针上，因此，成员运算符函数的(...]]></description><category></category></item><item><title><![CDATA[效果框架(效果ID3DXEffect)]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/143493436</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/143493436</guid><author>SwordArcher</author><pubDate>Wed, 06 Nov 2024 19:03:36 +0800</pubDate><description><![CDATA[将一个着色器与某一个特定路径建立关联。]]></description><category></category></item><item><title><![CDATA[像素着色器]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/141031022</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/141031022</guid><author>SwordArcher</author><pubDate>Thu, 08 Aug 2024 18:42:59 +0800</pubDate><description><![CDATA[像素着色器(pixel shader)是在对每个像素进行光栅化处理期间运行在图形卡GPU上的一段程序(不同与顶点着色器，Direct3D不会以软件方式来模拟像素着色器)，它实质上是取代了固定功能流水线中的，而且赋予了我们直接操纵单个像素以及访问每个像素的纹理坐标的能力。使得可以获得多重纹理、景深、云彩模拟、火焰模拟等效果。可以通过检查D3DCAPS9结构的成员PixelShaderVersion，并与宏D3DPS_VERSION进行比较，来测试图形卡是否支持某个像素着色器版本。]]></description><category></category></item><item><title><![CDATA[顶点着色器]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/134422473</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/134422473</guid><author>SwordArcher</author><pubDate>Wed, 15 Nov 2023 18:39:31 +0800</pubDate><description><![CDATA[顶点着色器(vertex shader)是-一段运行在图形卡GPU中的程序，它可取代固定功能流水线中的(当然，这也不是绝对的，因为在硬件不支持顶点着色器的情况下，Direct3D运行时就会用软件运算方式来模拟顶点着色器)可以看出，顶点是以局部坐标（局部坐标系中的坐标）输入顶点着色器的，而且顶点着色器必须将照亮的（上色的）顶点输出到齐次裁剪空间中。由于顶点着色器其实就是我们用HLSL语言编写的一段定制程序，这样我们在可实现的图形效果上就获得了很大的。]]></description><category></category></item><item><title><![CDATA[高级着色语言(HLSL)]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/134382995</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/134382995</guid><author>SwordArcher</author><pubDate>Tue, 14 Nov 2023 16:43:18 +0800</pubDate><description><![CDATA[HLSL中的函数具有以下性质函数使用与C++类似的语法参数总是按值传递的不支持递归函数总是内联的。]]></description><category></category></item><item><title><![CDATA[Direct3D拾取]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/134334195</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/134334195</guid><author>SwordArcher</author><pubDate>Mon, 13 Nov 2023 10:35:43 +0800</pubDate><description><![CDATA[假设在屏幕上单击，击中的位置为点s=(x,y)。由图可以看出，用户选中了茶壶。但是仅给出点s，应用程序还无法立即判断出茶壶是否被选中。所以针对这类问题，我们需要采用一项称为“拾取(Picking)”的技术。茶壶和屏幕点s之间的一种联系是茶壶被投影到了一个包含了的区域中。更准确地说，茶壶被投影到了投影窗口中一个包含点(点P位于投影窗口中)的区域中，其中点。我们看到，如果自坐标原点发出一条拾取射线(picking ray)该射线将与那些其投影包围了点p的物体（即茶壶）。]]></description><category></category></item><item><title><![CDATA[Direct3D粒子系统]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/134267493</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/134267493</guid><author>SwordArcher</author><pubDate>Thu, 09 Nov 2023 19:34:34 +0800</pubDate><description><![CDATA[例如加了粒子尺寸字段，但是没有给该字段赋值。]]></description><category></category></item><item><title><![CDATA[Direct3D地形绘制基础]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/134208709</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/134208709</guid><author>SwordArcher</author><pubDate>Mon, 06 Nov 2023 15:12:57 +0800</pubDate><description><![CDATA[思路是：地形中海拔较低的部分上色为沙滩色，中等海拔的部分上色为绿色的丘陵颜色，高海拔的部分上色为雪山的颜色。RAW文件本质上是一个连续的字节存储块，其中将字节型向量复制到一个整型向量中，我们就可对高度值进行比例变换从而突破0~255的限制，该方法的唯一限制是。我们对该类的构造函数还传入了与地形相关的设备指针、一个标识了存储高度图数据的文件的字符串，以及一个用于对高度图中各元素实施比例变换的。，所以，如果您要从一个256×256的RAW文件中读取数据，相应地您只能创建一个至多有256×256个顶点的地形。]]></description><category></category></item><item><title><![CDATA[设计一个灵活的Camera类设计]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/133785034</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/133785034</guid><author>SwordArcher</author><pubDate>Thu, 12 Oct 2023 18:36:10 +0800</pubDate><description><![CDATA[D3DXMatrixLookAtLH函数可计算出观察矩阵(取景变换矩阵)，当在某一固定点固定摄像机方位时，该函数十分有用，但其用户接口对于一个能够根据用户输入做出响应移动的摄像机来说，就会力不从心。我们可以实现一个Camera类以使我们能够较D3DXMatrixLookAtLH函数对摄像机更好的控制，该类特别适合于飞行模拟器、第一人称视角游戏。：右向量、上向量、观察向量、位置向量通过这些向量来定义摄像机相对于世界坐标系的位置和朝向，前3个向量统称为方向向量，方向向量必须是。]]></description><category></category></item><item><title><![CDATA[Direct3D网格(二)]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/133710855</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/133710855</guid><author>SwordArcher</author><pubDate>Wed, 11 Oct 2023 18:15:22 +0800</pubDate><description><![CDATA[与纹理中多级渐进纹理类似，如果对一个小而远的图元应用高分辨率的纹理实在是一种浪费，因为观察者不可能注意到这些细节，一个小而远的网格也完全不用像大而近的网格一样使用大量面片，所以在满足要求的条件下，总是用尽量少的面片来表达一个网格，以节省宝贵的绘制时间。如果希望提高精度，可借助外接体快速排除那些显然不能被击中的物体，然后再对那些极有可能被击中的物体使用更精确的方法来检测。，重叠的顶点就会被剔除，如果没有提供邻接信息，则重叠顶点的法向量由该顶点所依附的各面在该点的局部法向量取平均而得到，重要的第一点是传入的。]]></description><category></category></item><item><title><![CDATA[Direct3D网格(一)]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/133686875</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/133686875</guid><author>SwordArcher</author><pubDate>Sun, 08 Oct 2023 18:08:34 +0800</pubDate><description><![CDATA[函数创建一个"空"网格对象 ，空网格对象是指我们指定了网格的面片总数和顶点总数，然后由该函数为顶点缓存、索引缓存和属性缓存分配大小合适的内存，之后即可手工填入网格数据。函数来创建空网格，在该函数中并未指定FVF，而是用一个D3DVERTEXELEMENT9类型的结构数组来描述顶点数据的布局方式。：网格将具有的面片总数，该值必须大于0。：网格将具有的顶点总数，该值必须大于0。：存储在该网格中的顶点的灵活顶点格式。：创建网格时所使用的创建标记，枚举。：所创建的网格对象的指针。，一些常用的标记如下。]]></description><category></category></item><item><title><![CDATA[Direct3D字体]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/133344094</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/133344094</guid><author>SwordArcher</author><pubDate>Wed, 27 Sep 2023 16:11:40 +0800</pubDate><description><![CDATA[D3DX库提供接口用于在Direct3D应用程序中绘制文本，该接口内部使用GDI(图形设备接口)来绘制文本，因此该接口在性能上略有损失，由于使用GDI所以才能够处理一些复杂的字体和格式。可以用函数来创建一个ID3DXFont的接口对象。一旦获取了ID3DXFont接口的指针，只需要调用方法即可轻而易举地完成文本的绘制。：指定字符串所属的ID3DXSprite对象接口，可设为默认值0或NULL，表示在当前窗口中绘制字符串：指向将要绘制的字符串的指针。]]></description><category></category></item><item><title><![CDATA[Direct3D模板缓存]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/133143317</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/133143317</guid><author>SwordArcher</author><pubDate>Fri, 22 Sep 2023 18:34:26 +0800</pubDate><description><![CDATA[模板缓存是一个用于获得某种特效的离屏缓存，模板缓存的分辨率与后台缓存和深度缓存的分辨率完全相同，所以像素也是一一对应的，模板缓存允许我们动态的，有针对性的决定是否将某个像素写入后台缓存中。例如实现镜面效果时，我们只需在在镜子所在平面中绘制某个特定物体的映像，但是如果想只在镜面所对应的子区域中显示物体的映像，这是就可用模板缓存来阻止物体映像在非镜面区域中的绘制，a中镜面和墙壁映像都会被绘制，b中阻止了非镜面区域的绘制。]]></description><category></category></item><item><title><![CDATA[Direct3D融合技术]]></title><link>https://blog.youkuaiyun.com/SwordArcher/article/details/133093087</link><guid>https://blog.youkuaiyun.com/SwordArcher/article/details/133093087</guid><author>SwordArcher</author><pubDate>Thu, 21 Sep 2023 18:30:06 +0800</pubDate><description><![CDATA[该技术能使我们将当前要进行光栅化的像素的颜色与先前已已光栅化并处于同一位置的像素的颜色进行合成，即将正在处理的图元颜色值与存储在后台缓存中的像素颜色值进行合成(混合)，利用该技术我们可得到各种各样的效果，尤其是透明效果。在融合运算时需要遵循：首先绘制那些不需要进行融合的物体，然后将需要进行融合的物体按照相对于摄像机的深度值进行排序，如果物体已处于观察坐标系中，该运算的效率会相当高，因为此时只需要对Z分量进行排序，最后按照自后往前的顺序逐个绘制将要进行融合运算的物体。]]></description><category></category></item></channel></rss>