![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机图形学
文章平均质量分 89
界明城
这个作者很懒,什么都没留下…
展开
-
【笔记】Polygon mesh processing 学习笔记(10)
应用问题分析挑战层次化的方法两个半球空间变换的方向信息,分配给每个点Magnitude + directionMulti-valued field常见的场:1-vector field (有大小有方向),2-direction field (只有方向没大小,也叫line field,2-RoSy field),131^313-vector field(三个独立的向量,这个3表示3个独立);4-vector field(4方向的向量场,只有一个独立的方向);4-direction field(没有长度,也叫u原创 2022-06-28 20:55:07 · 591 阅读 · 1 评论 -
【笔记】Polygon mesh processing 学习笔记(9)
simplification,approximation,decimation把一个模型transform到另一个模型,更少的面、边、顶点简化和近似通常被用户定义的一个质量标准(quality criteria)来控制Vertex removal/ vertex insertionEdge collapse / vertex splitHalf-edge collapse / vertex split注意要避免illegal collapse (非流形)Vertex contraction,这种操作使顶点-原创 2022-06-05 09:37:03 · 528 阅读 · 0 评论 -
【笔记】Polygon mesh processing 学习笔记(8)
多边形网格处理(8)Mapping参数化和Deformation的本质都是MappingIntroductionf:Ω⊂Rd→Rdf: \Omega \subset R^d \rightarrow R^df:Ω⊂Rd→RdMesh-based mapping仿射变换,定义在每个三角形面片上的ft(x)=Jtx+btf_t(x)=J_t x + b_tft(x)=Jtx+btMeshless mappingf(x)=x+∑i=1mciBi(x)f(x) = x + \sum_原创 2022-05-30 16:01:02 · 931 阅读 · 0 评论 -
【笔记】Polygon mesh processing 学习笔记(7)
多边形网格处理(7)7. RepairingDefinetionProblem statementModel repair, removing artifacts from a geometric model, generate output suitable for further processing by downstream applciations that require centain quality guarantees.Application dependentDepen原创 2022-05-16 22:11:02 · 387 阅读 · 0 评论 -
【笔记】Polygon mesh processing 学习笔记(6)
6. Deformation(变形)引言所谓变形,是指交互式地改变网格。形式化定义:S′={p+d(p)∣p∈S}\mathcal{S}' =\{p+d(p)|p\in \mathcal{S}\}S′={p+d(p)∣p∈S}对离散三角网格而言,位移函数ddd是分段线性的,完全由原始网格的顶点对应的位移向量定义。用户预先定义一个位移区域, handle points,同时约束一些区域保持不变,fixedpointsfixed pointsfixedpointsd(pi)=diˉ,pi∈原创 2022-05-10 14:19:14 · 710 阅读 · 0 评论 -
【笔记】Libig从入门到放弃(续)
参数化参数化方法可大致分为四族:Single patch, fixed boundary. parametrize a disk-like part of the surface given fixed 2D positions for its boundary. 简单,高校,但是参数化后的map有很大distortionSingle patch, free boundary. 减少了map distortion,但是可能出现self-intersectionGlobal parametrizat原创 2022-05-02 20:54:47 · 967 阅读 · 0 评论 -
【笔记】Libigl从入门到放弃
主要内容Libigl基本知识离散几何参量与算子Libigl基本知识Libigl设计原则没有复杂的数据类型。只使用矩阵和向量;尽可能减少对外部库的依赖只有头文件(也可以做一个静态编译库)函数封装性下载Libiglgit clone https://github.com/libigl/libigl.gitLigigl核心功能只依赖C++标准库和Eigen但是编译起来还是挺费劲的,哈!Mesh表示Libigl使用Eigen库编码向量和矩阵Eigen参考指南: Dense原创 2022-04-30 12:10:11 · 3477 阅读 · 0 评论 -
【笔记】《WebGL编程指南》学习(10)
WebGL编程指南学习(10)This is just the end of the beginning. —— Winston Curchill10. 高级技巧(又续)绘制阴影实现阴影有若干种不同的方法,书里的例子是阴影贴图(Shadow map)或称深度贴图(Depth map)如何实现阴影?物理上:对一根光线上的两个点,如果一个点的z值大于另一个点,则它在阴影中算法上:计算光源到物体的距离根据计算出的结果,绘制场景计算机实现上:一组着色器用来计算光源到物体的距离,得到一原创 2022-04-24 14:36:20 · 1520 阅读 · 0 评论 -
【笔记】《WebGL编程指南》学习(9)
WebGL编程指南学习(9)Ragnarok!9. 高级技巧(续)α\alphaα混合如何实现α\alphaα混合两个步骤:开启混合功能gl.enable(gl.BLEND)指定混合函数gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)混合函数gl.blendFund()在进行α\alphaα混合时,实际上用到了两个颜色,源颜色(source color)和目标颜色(destination color)。前者是“待被混合的颜色”,也就是原创 2022-04-09 22:19:36 · 336 阅读 · 0 评论 -
【笔记】《WebGL编程指南》学习(8)
WebGL编程指南学习(8)漫长的旅行即将到达终点……8. 高级技术8.1 用鼠标控制物体旋转如何实现物体的旋转?如何旋转物体?使用MVP矩阵来变换顶点的坐标;根据鼠标的移动情况创建旋转矩阵,更新MVP矩阵算法思路在鼠标左键按下时记录鼠标的初始坐标;然后在鼠标移动的时候用当前坐标减去初始坐标,获得鼠标的位移;然后根据这个位移来计算旋转矩阵。这就需要一个鼠标移动事件的监听器。注册event handlertick()函数,执行动画function main() { ...原创 2022-04-06 14:06:31 · 1280 阅读 · 0 评论 -
【笔记】《WebGL编程指南》学习(6)
WebGL编程指南学习(6)6. 光照光照使场景变得逼真~6.1 从物理出发计算机图形学中着色(shading)的真正含义就是,根据光照条件重建“物体各表面明暗不一的效果”的过程两个物理上的事情需要考虑:发出光线的光源的类型物体表面如何反射光线光源平行光(directional light),或者叫方向光,类似太阳光;点光源(point light),类似灯泡环境光(ambient light),其他非直射的光其他特殊的光源,如聚光灯(spot light)反射类型物体反原创 2022-03-22 17:27:01 · 650 阅读 · 0 评论 -
【笔记】《WebGL编程指南》学习(5)
WebGL编程指南学习(5)这篇笔记是真正意义上的干货,字面意义上的”干“,干巴巴,哈哈哈!5. GLSL ES(OpenGL ES 着色器语言)WebGL并不支持GLSL ES 1.00的所有特性;实际上,它支持的是1.00版本的一个子集GLSL ES是在OpenGL 着色器语言(GLSL)的基础上,删除和简化一部分功能后形成的5.1 你好,着色器!基础GLSL是大小写敏感的每个语句以分号结束(非常像C)执行次序着色器语言从main()函数开始执行函数需要明确指定返原创 2022-03-21 21:01:57 · 525 阅读 · 0 评论 -
【笔记】Polygon mesh processing读书笔记(4)
多边形网格处理(4)4. Smoothing(平滑)网格平滑(mesh smoothing)从抽象的层面看,网格平滑是指设计和计算一个三角形的光滑函数f:S→Rd\bold{f}:\mathcal{S}\rightarrow \mathbb{R}^df:S→RdMesh smoothing 是几何处理的基础工具光滑函数可以使用,例如顶点位置、纹理坐标、或顶点偏移量来描述可用于网格参数化、各向异性remeshing、空洞填补、变形等任务网格平滑的两块内容:去噪和光顺去噪的意思是从光滑原创 2022-03-21 12:45:51 · 689 阅读 · 0 评论 -
【笔记】WebGL编程指南学习(4)
WebGL编程指南学习(4)4. 最后一块拼图在学会处理顶点,包括处理顶点的坐标、Javascript和WebGL管线的数据通信、坐标变换之后,还需要处理顶点的其他数据——如颜色等。此外,还需要处理将图像(或纹理)映射到图形或三维对象表面上。这就是WebGL的最后一块拼图。将顶点的其他(非坐标)数据(如颜色)传入顶点着色器发生在顶点着色器和片元着色器之间的从图形到片元的转化,又称为图元光栅化将图像(或称纹理)映射到图形或三维对象的表面上4.1 将非坐标数据传入顶点着色器4.1.1 第一个例原创 2022-03-20 22:16:10 · 1358 阅读 · 0 评论 -
【笔记】Polygon mesh processing 读书笔记(3)
文章目录3. 微分几何曲线弧长曲率表面表面的参数化表示度量性质**第一基本形式****各向异性**表面曲率**Euler定理****曲率张量****固有几何(Intrinsic Geometry)****Laplace算子**离散微分算子局部平均区域法向量梯度**离散Laplace-Meltrami算子****Uniform Laplacian****余切形式**离散曲率离散曲率张量3. 微分几何曲线光滑平面曲线,可认为是可微的一维流形,参数化为:x:[a,b]→R2,x(u)=(x(u),y(原创 2022-03-19 12:47:11 · 797 阅读 · 0 评论 -
【笔记】Polygon mesh processing读书笔记(2)
多边形网格处理系列第二篇文章目录@[toc]2. 网格数据结构基于面的数据结构基本情况优缺点改进的face-based数据结构基于边的数据结构基于半边的数据结构基于有向边的数据结构小结2. 网格数据结构判断一种数据结构的好坏标准包括(但不限于):构建它的时间响应特定查找的时间执行特定操作的时间存储消耗与冗余基于面的数据结构基本情况每个面包含3个顶点位置,不能表示网格连接关系也被称为triangle soup或者polygon soup一些数据转换格式,如stereolig原创 2022-03-19 12:39:20 · 628 阅读 · 0 评论 -
【笔记】Polygon mesh processing 读书笔记(1)
参考书籍:Polygon mesh processing,2010大约分8篇,这是第一篇0. 前言3D 获取技术计算机断层扫描(computer tomography)核磁共振成像(MR,magnetic resonance imaging)3D 激光扫描 (3D laser scanning)超声 (ultrasound)雷达 (radar)显微成像(microscopy)Botsch的几何处理管线输入数据–>移除拓扑和几何错误–>分析表面质量–>表面平滑(.原创 2022-03-14 13:33:25 · 953 阅读 · 0 评论 -
【笔记】《WebGL编程指南》学习(3)
WebGL编程指南学习(3),界明城,2022-3-33. 再来一点点数学关于视点,除了Viewpoint-LookAt-UpDirection之外,还有更多需要考虑的东西,比如视场,比如深度3.1 可视范围(Orthographic)类似人眼,在渲染场景的时候,定义了可视空间(view volume)3.1.1 可视空间两类常用的可视空间:长方体可视空间,由**正射投影(orthographic projection)产生;四棱锥可视空间,由透视投影(perspective projectio原创 2022-03-03 12:18:36 · 387 阅读 · 0 评论 -
【笔记】《WebGL编程指南》学习(2)
WebGL编程指南学习(2),界明城,2022-3-22. 只是一点数学罢了其实困扰我的,不是代码,而是数学——by某计算机科研狗2.1 WebGL坐标系统WebGL的X轴水平(正方向向右),Y轴垂直(正方向向上,书中有误),Z轴垂直于屏幕(正方向向外)但WebGL好像是右手坐标系,又好像不完全是2.2 移动、旋转和缩放可以使用右手法则确定旋转方向逆时针:观察者沿Z轴负方向进行观察,看到的物体是逆时针旋转的,这种情况又可称为正旋转2.2.1 4×4的变换矩阵数组存储矩阵元素可以按行主序,原创 2022-03-02 13:20:18 · 547 阅读 · 0 评论 -
【笔记】《WebGL编程指南》学习(1)
WebGL编程指南学习,界明城,2022-3-11. 只是简单的迁移罢了——在JavaScript中调用WebGL在JavaScript中调用WebGL,类似于在C++中调用OpenGL,也类似在Java中调用NDK,是一种类似客户端-服务器的请求-返回两层机制。API就起到了通信的作用。因此,难点在于:如何在JavaScript中获取WebGL传来的数据,主要是指WebGL里的变量(属性)及相关内容;如何将JavaScript中的数据传到WebGL1.1 着色器与JavaScript的数据“原创 2022-03-01 22:57:52 · 659 阅读 · 0 评论 -
【笔记】《WebGL编程指南》学习(0)
WebGL编程指南学习,界明城,2022-3-10. WebGL编程,从入坑到放弃知识路径《WebGL编程指南》环境搭建WebGL编程范式0.1 知识路径Level 1:了解计算机图形学,尤其是渲染相关概念Level 2:用过OpenGL,知道0.2 《WebGL编程指南》环境搭建0.2.1 TODO对本书的评价,将在整本书读完后更新0.2.2 代码运行环境本机运行环境:MacOS Monterey 12.2.1编辑器:VS Code本书对WebGL特性的支持:WebG原创 2022-03-01 20:17:14 · 955 阅读 · 1 评论