Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
2016年1月15日(DEMO12-2ALPHA混合。)
简而言之 alpha混合就是透明度 计算 Final src1 alpha src2 1 alpha 分解成RGB分量同样适用 其中 src1和src2为RGB格式 长16位 混合因子 0 255 长8位 创建alpha查找表 For 0到
业余封装3D软引擎
2014年3月7日星期五(DEMO8-4,实体三角形着色)
这个例子比较大 任重而道远 理论草草看了下 光记住索引和RGB各项求最小距离了 为简单起见 拷贝7 6过来 并把8 3封装到的引擎代码拷贝替换 逐行来看 各个击破 先换成800 600视口 define SCREEN WIDTH 800 d
业余封装3D软引擎
2014年2月7日星期五(7-3,消除了背面的3D线框立方体)
好久没进行了 看看吧 与DEMO7 2的区别 只看不同的地方 相机类型不同 归一化平面改为2 2 ar 视口为640 480 执行了背面消除 就是判断面元向量与面元到视点向量的点乘 gt 0 则可见 否则 消除 这一步是在物体剔除后和世界坐
业余封装3D软引擎
2014年3月8日星期六(DEMO8-5恒定着色)
恒定着色是在多边形由一种材质构成 多边形的每个点的面法线都相同 因此 只需对一个顶点的像素的光照情况对整个多边形进行着色 对于平面组成的物体 是可行的 但是如果对曲面组成的物体 会导致物体看起来由多边形组成 在16位着色下 光照步骤为 1
业余封装3D软引擎
2013年9月24日星期二(demo5_1参数化2D直线)
现在很想封装下3D的 将所谓的难度踏在脚下 好 现在准备了 代码到哪里 分析到哪里 首先 包含各种头文件 include common h include DDraw Interface h using namespace std HWND
业余封装3D软引擎
2015年1月16日星期五(12-1)
终于进入最麻烦的地方了 高级纹理映射 在这里 变换和光照计算中将使用浮点数 光栅化函数用定点数 由于函数将会爆炸性地增加 所以一个个地进行 不使用Z缓存的新光栅化函数 将固定或恒定着色的多边形绘制到屏幕上 首先排序三角形再绘制 void d
业余封装3D软引擎
2014年1月14日星期二(DEMO7-2,加载3D线框立方体物体模型)
上个DEMO 是渲染列表 这个DEMO 进行了加载PLG模型 仍然是一步步地进行 PLG模型首行包含了物体名称 顶点数和多边形数3部分组成 加载模型时可以每次读取一行 并对其中的数字进行分析 现在开始进行代码 先设置摄像机坐标和位置 朝向
业余封装3D软引擎
2013年9月22日星期日(准备工作:分离ddraw的math和interface)
在之前 要进行下封装 好吧 先加个类 ddraw math类吧 顺便把ddraw引擎中的几个矩阵弄到ddraw math类中来 让接口和数学相分离开 头文件有这些 pragma once a 2D vertex typedef struct
业余封装3D软引擎
2013年11月26日星期二(四元数)
这一节 应该是个一点点进行 QUAT q1 0 0 0 0 先看下QUAT数据类型 四元数 typedef struct QUAT TYP union float M 4 struct float q0 VECTOR3D qv struct
业余封装3D软引擎
2015年1月13日星期二(11-1深度缓存和可见性简介)
新的一年 开始新的篇章 终于进入第11章了 必须首要搞这个 争取今年搞完 我也相信 会对3D学习不是浪费时间 而是内力提升 在以前 用画家算法进行多边形排序 即根据渲染列表中的每个多边形的平均 最小或最大值进行排序 然后 再从后到前的顺序绘
业余封装3D软引擎
2014年1月2日星期四(流水线-UVN系统的实现)
方位角A是绕 Y轴旋转的角度 与 Z轴重叠时为0度 仰角B是方向向量与地平面 X Z平面 之间的夹角 假定为右手坐标系 则 r psinB y pcosb z rcosA x rsinA 初始化UVN相机 先赋值给各个朝向 void ddr
业余封装3D软引擎
2014年12月4日星期四(DEMO10-2地形生成函数)
转眼间 2014年快过去了 数了数代码 封装后的代码也有17000行了 但是 还有很多工作量 继续进行最为敬畏的地形生成 这个DEMO的意思是说 加载256色位图 以位图颜色索引乘以一个缩放因子为高程 将每个单元格分割为三角形 并插入到物体
业余封装3D软引擎
2013年11月25日星期一(DEMO5-3计算参数化直线和平面交点)
今天 以3D为主 仍然一步步地进行 首先加了个3D参数化直线 类似于参数化2D直线 参数化D直线 typedef struct PARMLINE3D TYP POINT3D p0 起点 POINT3D p1 终点 VECTOR3D v 方向
业余封装3D软引擎
2014年3月3日星期一(DEMO8-3,ALPHA混合)
单位的电脑运行DX11时 好多问题 但是没法上网 因此 以后在家进行DX11 在单位进行软引擎 因为一是以后会有大例子 需要较长时间 二是从书上看的东西 问题的解决方法不用在网上找 大不了拷到优盘里 言归正传 进行8 3 实际上是ALPHA
业余封装3D软引擎
2014年8月26日星期二(DEMO8-9加载COB模型)
步骤 1读取文件开头第一行 2读取名称 中心位置 X轴 Y轴和Z轴 用来定义局部矩阵 3读取局部坐标到世界坐标的变换矩阵 4 读取World Vertices行 并按照x y z顺序读取顶点列表 5 读取Texture Vertices行
业余封装3D软引擎
2014年2月21日星期五(DEMO7-6战区漫步)
这是本章最后一个例子 与上个例子不同的是 1 加载的物体是2个 2 用了欧拉相机 视野120度 这个DEMO是个综合 应该没有新的函数了 稍微简单些 首先设定个宇宙空间 以及 各物体参数 define UNIVERSE RADIUS 400
业余封装3D软引擎