首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
spotlight 图形学算法
2024-10-03
简单的图形学(三)——光源
参考自:用JavaScript玩转计算机图形学(二)基本光源 - Milo Yip - 博客园,主要讲述三种最基本的光源--平行光.点光源.聚光灯,其实就是三种数学模型. 代码的调整 先前的代码中,颜色是由几何物体自身计算得出,因此使用很有限.在Phong材质中,显示的效果已经很不错了,然而Phong材质是要假定有一个光源的.我们的代码需要从以面向物体渲染为面向光源渲染. 新的逻辑:https://github.com/bajdcc/GameFramework/blob/master/CCGam
shader复杂与深入:Normal Map(法线贴图)1
转自:http://www.zwqxin.com/archives/shaderglsl/review-normal-map-bump-map.htmlNormal Map法线贴图,想必每个学习计算机图形学的人都不陌生.今天在这里按我的理解总结一下,作为复习,也作为深入学习吧.——ZwqXin.com自从看完那本<数学在计算机图形学上的应用>后,一直想好好地真正实践一次法线贴图/凹凸贴图呢(以前是根据橙书弄了一下罢了).昨天偶尔看到篇涉及BumpMap的文,正好觉得是个机会,便在网上狂找相关资
WebGL光照阴影映射
原文地址:WebGL光照阴影映射 经过前面的学习,webgl的基本功能都已经掌握了,我们不仅掌握了着色器的编写,图形的绘制,矩阵的变换,添加光照,还通过对webgl的基础api封装,编写出了便利的工具库. 是时候进一步深入学习webgl的高级功能了,我认为要做逼真的3D特效,阴影绝对是一个必不可少的环节.现在我们就在之前光照的基础上添加阴影效果吧. 首先看一下阴影效果的实例: 阴影综合(多物体高精度) 点光源聚光灯阴影 内容大纲 我们以阴影综合(多物体高精度PCF)为例, 开始
Unity3D笔记 英保通一
一.材质和着色器 1.材质和着色器紧密的联系,其中材质相当于是一个框架,而着色器就是框架中中的内容.在材质框架中可以选择不同的Shader并调节不同的 属性 Material和Physic Material区别?PhysicMaterial 物理材质:物理材质描述,如何处理物体碰撞(摩擦,弹性).Material 材质(材质类)为了获得一个对象使用的材质,可以使用 Renderer.material 属性: 导入的资源Material:Normal map (法线贴图),新建的Material材
脸部识别JavaScript类库Tracking.js
作者 王文刚 发布于 2014年8月10日 | 对Web开发者而言,开源的JavaScript库Tracking.js正在使计算机视觉和增强现实技术变得简单, 使用它可以展示效果类似Kinect或者Wii的体感应用,且该JavaScript库体积小 (~7k),非常轻量级,且接口简洁. Tracking.js 能够在移动Web应用.桌面应用中工作,甚至可以和基于Node.js的服务器进行配对. 它会给浏览器带来计算机图形学算法和技术,其拥有功能:脸部识别(某个特定的颜色时或人物/脸庞/身体出
NormalMap 贴图 【转】
转载: http://www.zwqxin.com/archives/shaderglsl/review-normal-map-bump-map.html 说起Normal Map(法线贴图),就会想起Bump Map(凹凸贴图).Bump Mapping是Blin大师在1978年提出的图形学算法,目的是以低代价给予计算机几何体以更丰富的表面信息(高模盖低模).30年来,这项技术不断延展,尤其是计算机图形学成熟以后,相继出现了不少算法变体,90年代末的Normal Map解放了必须自行计算纹
【OpenGL基础篇】——使用面向对象方法封装OpenGL函数(二)
今天封装了一个Line类.负责在昨天写的窗体上绘制线条. OpenGL画图是通过给glBegin函数设置參数达成的,绘制线条有三个不同的參数: GL_LINES : 绘制连接两个点的线段(绘制的端点位于glBegin函数与glEnd函数之间) GL_LINE_STRIP : 绘制首尾相连的折线 GL_LINE_LOOP : 绘制首尾相连的折线,并在最后将起始点与终点相连接.闭合路径 以下是Line类的代码: /*******************************************
多重采样(MultiSample)下的FBO反锯齿 【转】
在三维渲染的过程中,锯齿总是让人讨厌的东西.抗锯齿的一种采用方式是多重采样,本文主要小记一下FBO与多重采样的关系.——ZwqXin.com 首先,关于FBO(Frame Buffer Object),想必都已经十分熟悉了.可以参考本博客(zwqxin.com)之前的几篇文章: [学一学,FBO] [OpenGL怎样近似进行同时到FBO和屏幕的渲染] [联结FBO与Texture Array] 另外,本人以前也写了些关于全屏幕反锯齿(FSAA)的文章: [全屏反锯齿 - 多重采样Ⅰ] [全屏
NormalMap 贴图 [转]
转载: http://www.zwqxin.com/archives/shaderglsl/review-normal-map-bump-map.html 说起Normal Map(法线贴图),就会想起Bump Map(凹凸贴图).Bump Mapping是Blin大师在1978年提出的图形学算法,目的是以低代价给予计算机几何体以更丰富的表面信息(高模盖低模).30年来,这项技术不断延展,尤其是计算机图形学成熟以后,相继出现了不少算法变体,90年代末的Normal Map解放了必须自行计算纹
OpenCASCADE Job - 武汉中南
中南设计集团(武汉)工程技术研究院有限公司是中南工程咨询设计集团有限公司(以下简称“中南设计集团”)打造的工程技术研发和科研创新平台,为中南设计集团旗下全资子公司,于2018年2月成立.公司业务范围涵盖高新技术成果孵化,科学技术成果转让:科技中介服务,新材料研发.销售.技术服务,计算机软件与智能化控制系统的研发.销售及技术服务. 中南设计集团是湖北省政府组建的工程设计咨询综合平台,是以工程建设领域的咨询.测绘.规划.科研.环评.勘察.设计.审查.监理.项目管理与工程总承包.招标代理.质量检测
【三】材质反射属性模型BRDF
双向反射分布函数(BRDF:Bidirecitonal Reflectance Distribution Function) 用来描述物体表面对光的反射性质 预备知识 BRDF的定义和性质 BRDF模型 BRDF的度量与评价 光照.照明 分为全局和局部光照 局部光照(Local illumination)和物体直接被光源照射的情况 全局光照(global illumination)和物体被光源外的其他地方的光线照射的情况相关,包括其他物体反射和投射过来的光线. 预备知识 球面坐标(Spheric
openGL实现图形学扫描线种子填充算法
title: "openGL实现图形学扫描线种子填充算法" date: 2018-06-11T19:41:30+08:00 tags: ["图形学"] categories: ["C++"] 先上效果图 白色的起始种子点 代码 #include <GL/glut.h> #include <cmath> #include <set> #include <vector> #include <uni
计算机图形学(第2版 于万波 于硕 编著)第45页的Bresenham算法有错误
计算机图形学(第2版 于万波 于硕 编著)第45页的Bresenham算法有错误: 书上本来要写的是以x为阶越步长的方法,但是他写的是用一部分y为阶越步长的方法(其实也写的不对),最后以x为阶越步长的方法总结. 分析书上的算法得: l K初始值<=0 画出的是 x=0; l 0<K初始值<1 画出的是 1/k的直线; l K初始值>=1 画出的是 y=x; 以下黑色的线是使用MoveTo,Lineto画出的,红色的是书上的程序画出的,蓝色的线是我修改后的直线(有除法),
图形学入门(3)——区域填充算法(region filling)
继续图形学之旅,我们已经解决了如何画线和画圆的问题,接下来要解决的是,如何往一个区域内填充颜色?对一个像素填充颜色只需调用SetPixel之类的函数就行了,所以这个问题其实就是:如何找到一个区域内的所有像素? 区域的表示方法 定义一个区域可以有两种方法,即内点表示法和边界表示法,内点表示就是指用一种颜色表示区域内的点,只要当前像素是这种颜色就在区域内,边界表示就是用一种颜色表示区域边界,只要当前像素是这种颜色就表示到达了区域边界. 简单的种子填充算法 最简单暴力的填充算法即是从区域内一点出发,向
图形学入门(1)——直线生成算法(DDA和Bresenham)
开一个新坑,记录从零开始学习图形学的过程,现在还是个正在学习的萌新,写的不好请见谅. 首先从最基础的直线生成算法开始,当我们要在屏幕上画一条直线时,由于屏幕由一个个像素组成,所以实际上计算机显示的直线是由一些像素点近似组成的,直线生成算法解决的是如何选择最佳的一组像素来显示直线的问题. 对这个问题,首先想到的最暴力的方法当然是从直线起点开始令x或y每次增加1直到终点,每次根据直线方程计算对应的函数值再四舍五入取整,即可找到一个对应的像素,但这样做每一步都要进行浮点数乘法运算,效率极低,所以出现了
计算机图形学——梁友栋-Barsky算法
梁算法是计算机图形学上最经典的几个算法,也是目前唯一一个以中国人命名的出现在国内外计算机图形学课本的算法,我之前在介绍裁剪算法的时候介绍过这个算法 https://www.cnblogs.com/wkfvawl/p/11705842.html#_label3 这几天复习图形学,发现当时那篇博客写的很空洞,一些关键性的推理式子讲的不是很清楚,于是在这里仔细介绍一下. 最近发现中国大学MOOC上中国农业大学的赵明教授讲的很不错,课程短小精悍,感兴趣的同学可以去看一下https://www.icour
《图形学》实验七:中点Bresenham算法画椭圆
开发环境: VC++6.0,OpenGL 实验内容: 使用中点Bresenham算法画椭圆. 实验结果: 代码: #include <gl/glut.h> #define WIDTH 500 #define HEIGHT 500 #define OFFSET 15 //偏移量,偏移到原点 #define A 6 #define B 5 void Init() //其它初始化 { glClearColor(1.0f,1.0f,1.0f,1.0f); //设置背景颜色,完全不透明 glColor3
《图形学》实验六:中点Bresenham算法画圆
开发环境: VC++6.0,OpenGL 实验内容: 使用中点Bresenham算法画圆. 实验结果: 代码: #include <gl/glut.h> #define WIDTH 500 #define HEIGHT 500 #define OFFSET 15 #define R 8 void Init() //其它初始化 { glClearColor(1.0f,1.0f,1.0f,1.0f); //设置背景颜色,完全不透明 glColor3f(1.0f,0.0f,0.0f); //设置画笔
《图形学》实验五:改进的Bresenham算法画直线
开发环境: VC++6.0,OpenGL 实验内容: 使用改进的Bresenham算法画直线. 实验结果: 代码: //中点Bresenham算法生成直线 #include <gl/glut.h> #include <math.h> #define WIDTH 500 //窗口宽度 #define HEIGHT 500 //窗口高度 #define DRAWLINE ProBresenham(100,100,400,400); //画直线 #pragma comment(linke
《图形学》实验四:中点Bresenham算法画直线
开发环境: VC++6.0,OpenGL 实验内容: 使用中点Bresenham算法画直线. 实验结果: 代码: //中点Bresenham算法生成直线 #include <gl/glut.h> #include <math.h> #define WIDTH 500 //窗口宽度 #define HEIGHT 500 //窗口高度 #define DRAWLINE1 MidpointBresenham(100,200,200,100); //画直线 #define DRAWLINE
《图形学》实验三:DDA算法画直线
开发环境: VC++6.0,OpenGL 实验内容: 使用DDA算法画直线. 实验结果: 代码: #include <gl/glut.h> #include <math.h> #define WIDTH 500 //窗口宽度 #define HEIGHT 500 //窗口高度 #define DRAWLINE1 DDALine(100,200,200,100); //画直线 #define DRAWLINE2 DDALine(200,100,450,400); //画直线 #pra
热门专题
unity 空包运行内存
小程序 剩下的高度占全屏
Hive SQL的常用日期函数
vue textarea失去焦点 调用函数传参数
windows10控制面板怎么添加本地组策略编辑器
@import 动态 spring
entityframework 命令行
电脑连接手机热点 fiddler进行抓包
SpringBoot 动态注册servlet
docker hadoop单机
proc/pid/fd 里面东西恢复
poi 导出 excle 报不能初始化 HSSFColor
java如何判断邮箱真实性
gnome如何隐藏动画
vuepress脚手架
Windows Server 2003 标准版 下载
安装缅甸字体以后还是不能显示缅甸语
如何在pr中设置在au中打开
linux网卡混杂模式
virtualbox7.0安装ubuntu休眠