一.什么是质心坐标? 在几何结构中,质心坐标是指图形中的点相对各顶点的位置. 以图1的线段 AB 为例,点 P 位于线段 AB 之间, 图1 线段AB和点P 此时计算点 P 的公式为 . 同理,在三角形 ABC 中,三角形内点 P 的计算公式为:——公式一. 公式一的最终表示形式为: 那么如何计算参数 m 和 n 呢? 下面给出推导过程: 根据公式一可得: 我们将  记作向量  ,将  记作向量  , 将  记作向量 ,则公式为: 然后分别乘以 v0  和 v1 得到如下两个公式: 继续化解方程…
引擎中,ray与quad求交,算法未细看,但有求解二次方程,不解.ray与triangle求交,使用的是97年经典算法,仔细看过论文,多谢小武同学指点,用到了克拉默法则求解线性方程组.想模仿该方法,做ray与quad的求交,发现方程里不仅有u和v,还有uv,没法变换成线性方程组的形式.本以为引擎中quad中四个点可以不共面,看过接口,不然,“不共面和退化的多边形不保证正确结果“.而后又有两个问题,一是,与一个quad求交比与两个三角形求交快吗?二是,如果前面的问题答案为否,即两个三角形更快,为何…
-------------------------------------------------------------- Chapter 1: Introduction to Discrete Differential Geometry: The Geometry of Plane Curves . A better approximation than the tangent is the circle of curvature. . If the curve is sufficientl…
Welcome back! This time, we’ll look into what is perhaps the “poster boy” feature introduced with the D3D11 / Shader 5.x hardware generation: Tessellation. This one is interesting both because it’s a fun topic, and because it marks the first time in…
In this part, I’ll be dealing with the first half of pixel processing: dispatch and actual pixel shading. In fact, this is really what most graphics programmer think about when talking about pixel processing; the alpha blend and late Z stages we’ll e…
In this installment, I’ll be talking about the (early) Z pipeline and how it interacts with rasterization. Like the last part, the text won’t proceed in actual pipeline order; again, I’ll describe the underlying algorithms first, and then fill in the…
Welcome back. This time we’re actually gonna see triangles being rasterized – finally! But before we can rasterize triangles, we need to do triangle setup, and before I can discuss triangle setup, I need to explain what we’re setting things up for; i…
题意:三维空间中,给出两个三角形的左边,问是否相交. 面积法判断点在三角形内: #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #include<iostream> #include<memory.h> #include<cstdlib> #include<vector> #define clc(a,b) memset…
流水线 流水线(Pipeline)是理解D3D必须要掌握的概念. 整个流水线有很多步骤,有的步骤是固定功能,不用怎么配置,有的步骤是要写代码的,也就是所谓的着色器程序(Shader). 一般来说,将流水线分为两类:渲染流水线和计算流水线.严格地说并这有这么明确的区分,因为他们都可以干别的事.但这里还是按这种分类来说. 渲染流水线 最开始的显卡加速器使用硬件的顶点变换来实现3D加速.现在几乎可以在显卡上实现任何算法了. 下图是具体的流程: 蓝底的是可编程的步骤,绿底的是固定功能的步骤.每一步都定义…
http://blog.sina.com.cn/s/blog_8c7d49f20102v4qm.html Patch is just an ordered list of vertices (在tessellation shader里面比较重要的概念就是这个patch,patch是一系列的顶点,OpenGL规定patch的vertex数量必须至少大于等于3) The tessellation process doesn’t operate on OpenGL’s classic geometri…