渲染流水管线
ycczbasd
这个作者很懒,什么都没留下…
展开
-
简单渲染流水管线C++代码实现(七)---三维渲染流水管线讲解
三维渲染流水管线大体上分为:1.应用程序阶段2.顶点变换阶段3.光栅化阶段一、应用程序阶段应用程序阶段的主要任务:将需要在屏幕上(具体形式取决于具体输入设备)显示出来绘制的几何体(也就是绘制图元,rendering primitives,如点、线、矩形等)输入到绘制管线的下一个阶段。对于被渲染的每一帧,应用程序阶段将摄像机位置,光照和模型的图元输出到管线的下一个主要阶段——几何阶段。...原创 2020-01-07 14:59:45 · 913 阅读 · 0 评论 -
简单渲染流水管线C++代码实现(六)---绕任意过原点的轴旋转矩阵
三维矩阵当中,绕x、y、z轴旋转其实是很简单的,这里不做推导了,和之前的二维旋转矩阵推导很类似,下面主要讲如何推导绕任意过原点的轴旋转矩阵。 //绕过原点指定轴旋转 Matrix4& Rotate(const Vector3& n, float a) { //单位化指定轴向量 Vector3 any_nomalize = n.Normalize(); //处理...原创 2020-01-07 09:51:45 · 628 阅读 · 0 评论 -
简单渲染流水管线C++代码实现(五)---线段裁剪
线段裁剪是图形学中一个非常重要的东西。线段裁剪简单来说,就是截取能在屏幕中显示出来的部分,这样做可以减少计算机在渲染过程中的计算量,加快渲染速度。下面开始实现。...原创 2020-01-03 16:13:59 · 298 阅读 · 0 评论 -
简单渲染流水管线C++代码实现(四)---矩形相交处理
本篇主要来处理矩形相交问题。其实图形学当中很多地方涉及到矩形相交问题,比如:1.把屏幕视口当作一个矩形,屏幕内的矩形和屏幕的相交问题2.把图片裁剪出一块矩形时判断依据如下:具体的C++代码如下//rect1、rect2为待判断相交的矩形,rect为输出矩形RECTANGLE* RectangleCollide(const RECTANGLE* rect1, const RECTANG...原创 2019-12-21 15:04:02 · 211 阅读 · 0 评论 -
简单渲染流水管线C++代码实现(三)---实战之《忍者飞镖》
今天的主题:忍者飞镖(仍然利用自己写的向量和矩阵实现)介绍:飞镖丢出后能够返回原来的位置注意点:1.在没有任何操作的情况下,飞镖围绕正方形顺时针公转并自转2.按下空格后,飞镖丢出,延当前的-Y方向运动,可以连续按键,直至所有飞镖全部飞出,正方形无论何种情况都是可以自由移动的3.飞镖与屏幕正上方碰撞后,立即返回,朝向为自己的原定位置(此位置无论飞镖在与否,都会公转),到达指定位置后,继续公...原创 2019-11-21 16:54:39 · 297 阅读 · 0 评论 -
简单渲染流水管线C++代码实现(三)---实战之《黄金矿工》
写这篇博客之前,纠正之前代码中一处写的不好的地方:Vector2.h中Rotation应写为Rotate。下面我们进行今天的主题:黄金矿工如何利用之前我们实现的一些东西来做黄金矿工呢?其实不算很难,注意一下几个地方即可。1.在没有任何操作的情况下,抓手应该是来回180°旋转,要注意到临界点时,角度反转,最好是用一个变量控制当前角度值,一个变量控制角度递增量(正负值控制旋转方向)2.按下...原创 2019-11-19 21:32:37 · 868 阅读 · 0 评论 -
简单渲染流水管线C++代码实现(三)---矩阵
这一篇接着来一步步实现。本篇主要是介绍矩阵,并推导渲染流水管线中使用的缩放、旋转、平移矩阵,然后利用C++实现它,并且做一个简单的小游戏(使用平移、旋转、缩放)1.首先介绍矩阵并实现它理论:C++代码实现:matrix3#pragma once#include "vector2.h"//此处的宏定义主要是为了读者能区分矩阵元素的位置#define _M_11 0#define ...原创 2019-10-27 09:35:08 · 369 阅读 · 0 评论 -
简单渲染流水管线C++代码实现(二)---向量
这一篇接着来一步步实现。本篇主要是介绍向量,然后利用C++实现它(先实现二维向量,往后会进一步实现三维向量),并通过今天实现的东西,做一个小游戏(鼠标点选位置,人物朝目标位置移动)1.首先是实现二维向量:vector2.h理论:#pragma once#include <cmath>#include <cassert>//二维向量:没有叉乘crosscla...原创 2019-10-21 20:49:57 · 356 阅读 · 0 评论 -
简单渲染流水管线C++代码实现(一)---双缓冲技术
最近非常喜欢游戏开发中的渲染流水管线,因此,特地网上看了很多资料,闲暇时间想利用C++的桌面开发将其慢慢实现它,废话不多说,下面就来个开胃的,直接贴代码,图片资料放在了文末ps:本篇主要是创建一个窗口,然后利用双缓冲技术实现一个简单的移动游戏,后续会慢慢更新#include <iostream>#include <windows.h>#pragma comment...原创 2019-10-18 15:31:39 · 390 阅读 · 0 评论