首页 > 其他分享 >图形学

图形学

时间:2023-10-28 10:34:24浏览次数:35  
标签:求交 right 图形学 beta vec alpha left

求交运算

大多数求交无外基本就是写出射线方程和被交物体的方程,然后联立求解,根据一直条件是否符合
射线方程

\[ Ray = O+ D*t \tag{t>0, t<+} \]

球方程

\[ \left(T- Origin \right)= R^2 \]

平面方程

\[\left(P-Pos_0 \right)* \vec{n} = 0 \]

1. 射线与球的求交
求交就好了,最后对t分情况讨论 t的大小然后取值

2.射线与三角形的求交

传统求交方法即联立,求得下式

然后对于t求出的交点坐标是否在三角形内还需进一步判定,可用重心坐标求解

还有一种更高效的方法求交

Möller-Trumbore 算法的核心思想是一步到位的计算出光线是否与三角形相交,主要利用到的知识点是三角形的重心坐标。它是由Tomas Moller 和Ben Trumbore 于1997 年在一篇题名为“Fast, Minimum Storage Ray/Triangle Intersection”的论文中介绍

由三角形内一点都可以由一下方程表示

\[P = \left(1 - \alpha- \beta \right)A + \alpha B+ \beta C \]

所以射线与三角形求交可写成如下

\[O+ D*t = \left(1 - \alpha- \beta \right)A + \alpha B+ \beta C \]

化简

\[\vec{AO} = \alpha\vec{AB} + \beta\vec{AC} - tD \]

写成矩阵形式

\[\begin{pmatrix} \vec{AB}& \vec{AC}& -\vec{D} \end{pmatrix} \begin{pmatrix} \alpha\\ \beta\\ t \end{pmatrix} = \vec{AO} \]

求解\(\alpha、\beta、t\)问题就转换为了求解该方程组问题了,只需要使用克拉默法则即可求出\(\alpha、\beta、t\)三个值

克拉默法则
若线性方程的系数矩阵可逆(非奇异),即系数行列式 D≠0,则线性方程有唯一解,其解为
\(x_i = \frac{D_i}{D}\)

最后对比\(\alpha、\beta、t\)是否在\(\left(0,1\right)\)内即可 (具体原因可学习重心坐标)

标签:求交,right,图形学,beta,vec,alpha,left
From: https://www.cnblogs.com/a2leaf/p/17793704.html

相关文章

  • 【图形学笔记】Lecture02&03 光栅化、抗锯齿、Z-buffer
    目录Lecture02-DigitalDrawing数码绘画Triangles-FundamentalAreaPrimitive三角形——基本区域Rasterization光栅化Sampling采样Lecture03-Sampling,Aliasing,Antialiasing采样、锯齿、抗锯齿Artifactsduetosampling-“Aliasing”采样产生的问题-混叠Antialias......
  • 图形学、02 推导证明 | 任意一点经过透视投影后 z 坐标相对于之前有什么变化
    齐次坐标知识点:\(\begin{bmatrix}x\\y\\z\\1\\\end{bmatrix}\Rightarrow\begin{bmatrix}nx\\ny\\nz\\n\\\end{bmatrix}\)两个都表示同一个点透视投影:先将远截面按一定规则缩放到跟近截面一样大,然后再正交投影缩放规则:远截面缩放后\(z\)不变,缩放过后大小同近......
  • 图形学 Cellular Noise
    前言本篇重点如何实现CellularNoise定义CellularNoise基于Voronoi图生成,其外观就像是一个个紧挨着的细胞,因而得名CellularNoise。而Voronoi图的定义是由一组连续多边形组成,多边形的形成由其内部的控制点来控制,按照最邻近原则划分平面,即每个多边形都代表平面上离其内部控制......
  • Note of SHU Computer Graphics (01): 计算机图形学概述
    什么是计算机图形学?研究怎样利用计算机来显示、生成和处理图形的原理、方法和技术的一门学科,这里的图形是指三维图形的处理。图形:计算机图形学的研究对象能在人的视觉系统中产生视觉印象的客观对象包括自然景物、拍摄到的图片、用数学方法描述的图形等等构成图形的要......
  • 计算机视觉(Computer Vision),计算机图形学(Computer Graphics)和数字图像(Image Proce
    计算机视觉(ComputerVision),计算机图形学(ComputerGraphics)和数字图像(ImageProcessing)从学科分类:ComputerScience/ArtificialIntelligence/ComputerVisionComputerScience/ComputerGraphicsandVisualizationElectricalEngineering/SignalProcessing/Digit......
  • 计算机图形学
    1.随机扫描和光栅扫描随机扫描是一种按照像素点的位置随机扫描的方式,显示器不是按照固定的顺序扫描每个像素点,而是根据需要扫描的像素点位置来决定扫描顺序。这种方式可以提高显示器的响应速度和显示质量,但需要更高的计算资源和更复杂的控制逻辑2.走样与反走样走样通......
  • Java使用joml计算机图形学库,将3D坐标旋转正交投影转为2D坐标
    最近遇到了一个困扰我许久的难题,现将解决方案分享出来由于我们的项目侧重点在前端绘图,导致了前后端工作量不协调,我后端接口很快就能写完,而前端一个图要画好久,领导见状将前端的任务分到后端一部分用Java代码来实现,然后给前端提供接口而我接到的任务就是将Echarts中绘制三维图形的......
  • 计算机图形学与GPU渲染 -- 什么是计算机图形学
    一:定义 关于计算机图形学的定义众说纷纭。IEEE对计算机图形学的定义为:Computergraphicsistheartorscienceofproducinggraphicalimageswiththeaidofcomputer。 国际标准化组织ISO将计算机图形学定义为:计算机图形学是一门研究通过计算机将数据转换成图形,并......
  • java 图形学 点和闭合区域位置关系判断
    判断一个点是否在一个特定的区域内或外,通常需要你具备区域的数学表达(例如,方程、不等式等)以及要判断的点的坐标。例如,如果你有一个圆的方程(x-h)²+(y-k)²=r²,其中(h,k)是圆心,r是半径,你要判断点(a,b)是否在此圆内或外。你可以将点(a,b)的坐标带入这个方程:如果(a......
  • 图形学流体力学Fluid Simulation for Computer Graphics
    从水的飞溅,到火焰和烟雾的旋转,流体已经成为计算机图形学的一个重要组成部分。这本书旨在涵盖模拟这些动画效果的基本知识。让我们来看看控制它们运动的基本方程。动画中大多数有趣的流体流动都是由著名的incompressibleNavier-Stokes方程控制的。>>fluidenginedevelopment>>......