图形之可见面判别算法
来源:互联网 发布:java中怎么调用方法 编辑:程序博客网 时间:2024/06/16 20:00
图形中,从3D的转为2D显示到显示器上,处理的一般流程为:3D数据构建(包括纹理、方位、颜色、形状、点数据、uv数据、相机等)、3D->相机世界的矩阵变化、相机视矩阵对世界的截切、投影到相机的观察屏幕、屏幕剪切(获取视口的所有像素的颜色值)、显示到显示器。
可见面判别是其中3D转2d过程中投影到相机观察平面中重要的一步。判断出那些面需要显示,并最终获取观察平面的像素的显示颜色。
一般判别可以有后向面判别算法、深度缓存算法、A缓存算法、扫描线算法。
1、后向面判别算法,根据3D中该面的法线方向和相机观察向量的关系,来过滤掉与物体背面的面。基本可以处理掉百分之五十的面。
原理:假设某3D平面函数为: A*x+B*y+C*z+D=0,其法向量为N=(A,B,C),假设观察向量 为V(X,Y,Z).通过两个向量点积的值,获取两者夹角。N . V>0,则为后向面,需要剔除。
2、深度缓存算法。假设所有物体都要在观察平面投影,则观察平面的每个像素有可能对应着若干个物体的点,而这个像素的最终颜色决定于所有投影为该像素位置的若干点的颜色和透明度。倘若都不是透明的,则观察平面的颜色值肯定等于距离该平面最近的可见面的点的颜色值。而深度可以理解为所有投影为该像素点的点,距离观察平面的距离值。一般归一化为0-1.
这也是为什么一般设置相机都会设置相机的最大和最小观察距离(为了归一化也为了剔除部分物体)。
(ps。先写两个,改天继续)
阅读全文
0 0
- 图形之可见面判别算法
- 计算机图形学基础 : 可见面判别算法
- R语言分类算法之距离判别(Distance Discrimination)
- 判别同位词算法
- 图形算法基础之向量
- 生成算法与判别算法
- 生成算法和判别算法
- MachineLearning 学习之fisher判别
- 蓝桥算法训练之字母图形
- 分形图形之逃逸时间算法
- android 学习笔记之图形算法
- 判别学习算法和生成学习算法
- unity之uv贴图画圆弧,圆弧面,不规则图形
- OpenGL(二)图形绘制之多边形面的绘制
- 相亲对象判别基于K-近邻算法
- 多分类Fisher线性判别算法
- 分类模型与算法--距离判别法
- php手册之类型转换的判别
- 兼容IE8问题
- 剑指offer-数字在排序数组中出现的次数
- java List的<>中 方法参数是父类对象的list。传入子类对象时的处理
- 软件设计原则概述
- 剑指offer-数字在排序数组中出现的次数
- 图形之可见面判别算法
- 【剑指Offer】面试题60:把二叉树打印成多行
- List集合排序工具类
- SQLite线程模式探讨
- java的核心入门到放弃————面向对象小结
- C# 字符之间的转换
- spring 解读之 DI 、AOP
- 001初识java
- Scrapy手动增加Add Cookie和关掉重复过滤器dupfilters