渲染管线——背面消隐

DX11 渲染管线&六边形绘制 DX11 渲染管线&六边形绘制 目录 文章目录DX11 渲染管线&六边形绘制目录题目&要求问题描述&解决整体思路(渲染管线)作业实现分析&代码思考&小结 题目&要求 • 练习:xjun 01/02 DirectX11 初始化的习题 • 真作业:用 DX 画一个等六边形 • 申请github账号,用Git管理以后的作业和周记,并上传仓库到Github(推荐使用vs上传),并且要写进文档中,文 档也是评分内容之一 问题描述&解决 可能存 阅读详情

什么是背面消隐

我们使用三角网格描述物体,在物体被转换到视空间之后,下一步就将被转换到屏幕坐标。
背面消隐指的是删除背向视点(相机的观察点)的多边形。

这里写图片描述

算法原理

基本的背面消隐算法数学原理很简单:
(1)要求所有的三角形按照统一的方式(顺时针或者逆时针)排列顶点,这很重要,因为关系到平面法向量的计算。
(2)根据三角形的顶点信息计算该三角形的外法向量。
(3)使用观察向量(观察向量是指相机点到三角形某个顶点的向量)测试三角形的外法向量,如果这两个法向量的夹角严格小于90度,那么多边形对于观察者而言是可见的。

简单说明一下(1):
这里写图片描述

对于该物体,显然面OAB和OBC与ABC对于观察者来说不可见,假设观察向量为view,四个面的法向量计算结果为n1,n2,n3,n4。
(面法向量是由顶点的叉乘计算出来的)
根据我们的算法,应当只有view与n1(OAC的外法向量)严格小于90度,但是如果不规定三角形顶点的存储顺序,那么n1,n2,n3,n4的计算方式就会不统一。又面法向量是由顶点叉乘计算得来的,且叉乘是

3D图形库背面消隐的三大陷阱示例源代码 3D图形库背面消隐的三大陷阱示例源代码 1.用视线来算 2.注意统一顶点存储顺序 3.注意顶点存储顺序、叉乘计算顺序、视线方向之间的联系 立即下载

相关推荐

图形消隐算法

根据解析几何原理,通过标准的平面方程可以判断给定点是在平面的正面还是背面。平面公式法利用此原理来判断观察点位于物体表面的哪一面,如位于背面一侧,则表面不可见,应被消隐;反之则可见。

从零实现3D图像引擎:(14)背面消隐的三大陷阱

1. 为什么要背面消隐 通过之前的DEMO,能够知道如果在渲染过程中多边形越多,那么要不处理的内容就越多,就越消费计算机的处理能力。对于物体来说,一般我们只看到它面对我们的面,可能不是正对着,但是肯定有很多面是完全背对我们的,我们就应该在渲染时跳过他们。这将减少大约一半的三角形渲染量。原理其实很简单,就是向量与平面的关系,这个原理我在参数化直线与平面的那篇文章中特意推导了整个来龙去脉。 我喜欢...

游戏开发、游戏引擎开发、逆向破解爱好者 773

背向面消隐算法

图像图像学背向面消隐算法,采用vc++算法实现!

计算机图形学---背面消隐

要消除二义性,就必须在绘制时消除被遮挡的不可见的线或面,即消除隐藏线和隐藏面,简称消隐

qq_45068835的博客 483

计算机图形学 学习笔记(六):消隐算法:Z-buffer,区间扫描线,Warnock,光栅图形学小结

接上文 计算机图形学 学习笔记(五):多边形裁剪,文字裁剪光栅图形学算法4.1 消隐算法简介和分类消隐当我们观察空间任何一个不透明的物体时,只能看到该物体朝向我们的那些表面,其余的表面由于被物体所遮挡我们看不到。如果把可见的和不可见的线都画出来,对视觉会造成多义性。 要消除这种二义性,就必须在绘制时消除被遮挡的不可见的线或面,习惯上称作消除隐藏线和隐藏面,简称为消隐。要绘制出意义明确地、富有真实感

学愈进而愈惘 4万+

3D渲染管线中的背面消除

背面消除在世界空间中进行,背面消除完成之后,再进行世界坐标到相机坐标的变换。背面消除工作原理如下: 1. 物体的所有多边形的三个顶点以统一的方式进行标记,例如顺时针。 2. 计算该根据多边形的两个向量,计算多边形的面法线(surface normal) 3. 计算观察向量(view vector) 4. 计算面法线和观察向量的点乘,若结果<=0,说明夹角大于90°,则标记多边形为背面 5. 在后面的绘制中过滤掉有背面标记的多边形

... 1035

图形渲染中的背面消隐

在3d图形学中,一个三角形图元有两个表面 在dx中,认为在摄像机坐标系中 以你的观察方向三角形环绕为顺时针的面为正面,另一面为背面,而在openGL中正好相反。(顶点的方向又称为环绕) dx是左手坐标系而openGL是右手坐标系。 dx: D3DRS_CULLMODE,绘制状态 用法:Device->SetRenderState(D3DRS_CULLMODE,X); 其中X可取的...

weixin_30325793的博客 675

DirectX之三——渲染管线与坐标系(Direct3D9)

DirectX之三——渲染管线与坐标系(Direct3D9) Direct3D渲染管线   使用Direct3D绘制模型是需要经过一个流程的,这个流程就被称为渲染管线或绘制流水线,渲染管线可分为下列几个流程: 另外需要注意的是:Direct3D采用的是左手坐标系,如下图所示: 局部坐标系   局部坐标就是表示单个模型所需要的坐标,一般以模型的中心来作为局部坐标系的原点。而模型...

起步 3725

渲染

渲染就是将三维物体或场景的描述转化为二维图像的过程。 渲染管线是显示芯片内用于处理图形信号而相互独立的并行处理单元。 渲染管线中流动的是顶点、几何图元和片段,所以也叫渲染流水线。 Direct3D 9中,渲染管线主要有9个处理阶段: 局部坐标变换→世界坐标变换→观察坐标变换→背面消隐→光照计算→裁剪→投影→视口计算→光栅化

sandyfish的专栏 483

Direct3D 初涉:绘制流水线

转载自:http://www.cnblogs.com/chinazhangjie/archive/2011/11/15/2250420.html 绘制流水线(rendering pipeline):从 3D 场景到 2D 场景,必须实施的一系列运算。   局部坐标系->世界坐标系->观察坐标系->背面消隐->光照->裁剪->投影->视口坐标系->光栅化   1. 局部

梧桐下的四叶草 489

Direct3D9的绘制流水线

Direct3D的渲染过程大致可以分为以下几步 0. 模型表示 所有的三维实体都可以由有限的三角形mesh来逼近地表示 D3D绘制图形的最小单位(图元)通常为三角形mesh,但D3D也支持点图元和线图元(例如用于粒子系统) 为了描述一个三角形mesh,我们需要一个顶点列表,D3D中的顶点和数学上的顶点有所区别,除了数学上顶点所有的位置信息外,D3D的顶点还包含了光照,颜色,法向量等信...

a594896082的博客 370

DirectX9:基础篇 第五章 绘制流水线

一.简介 绘制流水线也称为渲染管线,在DirectX的固定渲染管线中有九个步骤 用来创建3D世界几何描述的2D图像,并且设定一个虚拟摄像机把其中需要的部分透视投影到屏幕上 绘制流水线的流程:局部坐标系->世界坐标系->观察坐标系->背面消隐->光照->投影->裁剪->视口坐标系->光栅化 ...

weixin_30361641的博客 375

Direct3D11学习:(六)渲染管线

转载请注明出处:http://www.cnblogs.com/Ray1024 一、概述 这篇文章主要讲解渲染管线(rendering pipeline)的理论知识。 渲染管线是指:在给定一个3D场景的几何描述及一架已确定位置和方向的虚拟摄像机(virtual camera)时,根据虚拟摄像机的视角生成2D图像的一系列步骤。 下图所示为构成渲染管线的各个阶段,以及与各个阶段相关的内存资...

weixin_30258027的博客 199

DX11六边形绘制的两种方法以及xjun博客的学习感悟

DX11六边形绘制的两种方法和xj博客的学习感悟 1.(图元类型为D3D11_PRIMITIVE_TOPOLOGY_LINELIST) Triangle list(左) or triangle strip(右) 该方法通过四个三角形就能拼出一个六边形,则需要十二个顶点。 通过改变顶点个数位置,以及draw函数中的顶点个数的参数以及图元类型就能实现一个六边形 修改代码部分以及运行结果贴图如下: 2.(图元类型为D3D11_PRIMITIVE_TOPOLOGY_STRIP) Triangle

weixin_50507425的博客 938

关于背面消影和深度测试区别

以下,仅仅代表个人观点,由于本人3D只处于入门阶段,一直也

Wait的专栏 2154

OpenGL: 渲染管线理论详解

学习着色器,并理解着色器的工作机制,就要对OpenGL的固定功能管线有深入的了解。首先要知道几个OpenGL的术语: 渲染(rendering):计算机根据模型(model)创建图像的过程。 模型(model):根据几何图元创建的物体(object)。 几何图元:包括点、直线和多边形等,它是通过顶点(vertex)指定的。 最终完成了渲染的图像是由在屏幕上绘制的像素组成的。在内存中,和像素有关的信息(如像素的颜色)组织成位平面的形式,位平面是一块内存区域,保存了屏幕上每个像素的一个位的信息。

heyuchang666的专栏 5382
上一篇: 渲染管线——视图坐标与相机模型
下一篇: 渲染管线——光栅化之Bresenham绘线算法
SixDayCoder
博客等级 码龄12年 98粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值