- 博客(37)
- 收藏
- 关注
原创 JavaScript——大数组的合并问题及不同数组合并方法的探究
JavaScript——大数组的合并问题及不同数组合并方法的探究最近在处理模型数据的时候出现了一个问题,当合并不同模型的vertex等数据的时候,从网上查了查都说Array.prototype.push()这个好,结果我使用了这个方法却报错了,后来改用concat才成功运行,实践出真知,所以要写一篇文章来记录测试不同的数组合并方式的快慢(其实是写代码写的头疼,放松一下)。测试数据let arr1=arr2=arr3=arr4=arr5=arr6=[];let arrF1=arrF2=arrF3=ar
2021-08-04 19:23:00
289
原创 linux下usd的配置
linux下usd的配置以ubuntu18.04为例usd下载usd是Pixar的3D描述格式,我使用usd主要是因为苹果在AR中使用的就是基于usd格式的usdz(usd的压缩格式+需要的图片)。git下载usd的git地址虽然usd可以直接从github上下载然后进行编译,不过不推荐这种方式,因为usd引用了一大堆三方库,导致usd的编译极其复杂。NVIDIA下载NVIDIA下载地址幸运的是NVIDIA官方给了一个编译完的usd包,我们直接在NVIDIA官网上下载就可以了。usd配置
2021-03-05 17:37:02
615
原创 ubuntu18.04下的glfw3的安装
ubuntu18.04下的glfw3的安装写在前面最近一直在使用Linux系统,当使用glfw的发现很多的文章写的不是很明白,所以在这里记录一下自己的安装过程。下载glfwglfw下载地址在网址右侧点击glfw的下载,目前的版本是3.3.2安装下载完成后为.zip文件,可以直接拖到随便一个位置,也可以使用unzip命令解压到指定地址。进入到文件夹,如下图所示输入命令mkdir build。这个build是自己定义的,我看很多文章都写mkdir ~/build,在Linux系统中~代表的是/h
2020-07-18 23:31:56
3289
3
原创 three.js源码翻译-Layers.js
three.js源码翻译-Layers.js说明layer(层级)的概念不论是在哪个引擎或者3d库中都是很重要的,因为在实际的开发中,是有多个层级的实际要求的。比如在关卡游戏中,往往一关中不只有boss关,之前也会有精英怪之类的,这时候通过层级就可以在同一关中精英怪和boss就可以无缝切换了。源码源码位置arc/core/layers.js源码/** * @author mrdoob / http://mrdoob.com/ *//** * 层级的概念其实是很重要的,比如在第
2020-06-09 09:49:20
446
原创 pbrt学习笔记1——光线追踪
pbrt学习笔记1——光线追踪相机射线与物体的相交光源可见性表面散射间接光光线的传播后记几乎所有的真实渲染系统都是基于光线追踪算法。光线追踪算法实际上是一种非常简单的算法;它是基于跟踪光线穿过场景的路径,因为它与环境中的物体相互作用并弹出环境中的物体。(就是模拟现实中光线的运行方式,通过判断光线是否与物体相交来确定确定交点的颜色,无数条光线与物体的折射或者反射,从而实现整个场景的渲染着色)虽然有很多方法来编写光线追
2020-06-03 18:42:41
438
原创 JavaScript——&、|、^、~位运算
JavaScript——&、|、^、~位运算JavaScript——&、|、^、~位运算&(与)位运算符|(或)位运算符^(异或)为运算符~(非)位运算符位运算顾名思义就是二进制的计算,需要将十进制换算成二进制在进行相关运算。在实际的开发中用到的时候不多,主要有以下两点:需要将十进制在脑海里转成二进制,挺麻烦的。在进行大的位数运算的时候可能会出问题,因为是计算二进制,第一位控制正负,有可能算的时候变成负数了。&(与)位运算符
2020-06-01 21:10:14
871
原创 glsl效果2——灰度图
glsl效果2——灰度图原始图及代码1.1. 原始图1.2. 原始代码灰度图效果图及glsl代码2.1. 效果图2.2. glsl代码加权的灰度图的效果图和glsl代码3.1. 效果图3.2. glsl代码git地址以下的效果建立在使用帧缓冲,渲染到纹理后进行的相关操作,具体代码可以看git项目里的源代码。灰度图就是吧原来的颜色都变成了灰色1. 原始图及代码1.1. 原始图1.2. 原始代码void main(){ F
2020-05-29 13:39:03
682
原创 glsl效果1——反相
glsl效果1——反相原始图及代码1.1. 原始图1.2. 原始代码反相效果图及glsl代码2.1. 反相效果图2.2. 反相glsl代码背景为白色的反相3.1. 效果图3.2. 代码git地址以下的效果建立在使用帧缓冲,渲染到纹理后进行的相关操作,具体代码可以看git项目里的源代码。反相顾名思义,就是颜色跟原来是反的。1. 原始图及代码1.1. 原始图1.2. 原始代码void main(){ FragColor =
2020-05-29 13:25:09
499
原创 Linux下安装显卡驱动及CUDA程序
Linux下安装显卡驱动及CUDA程序系统参数安装显卡驱动通过ubuntu菜单下的软件与更新安装驱动程序(没试过,可行性未知)通过PPA仓库自动化安装apt_get安装查看可以安装的显卡驱动版本通过apt-get安装检测是否安装成功安装CUDA程序下载选择版本,以Ubuntu为例,如下图所示下载CUDA安装CUDALinux下安装显卡驱动及CUDA程序系统参数系统:ubuntu18.04显卡:NVIDIA RTX 2060需要安装的版本:C..
2020-05-24 09:51:03
11148
2
原创 optix资料(基于optix7.0)——错误
optix资料(基于optix7.0)——错误context上下文的错误optixDeviceContextCreate错误OPTIX_ERROR_CUDA_NOT_INITIALIZED CUcontext为0,并且CUDA上下文未创建。OPTIX_ERROR_CUDA_ERROR CUDA 操作失败。OPTIX_ERROR_HOST_OUT_OF_MEMORY 堆分配失败。OPTI...
2019-11-15 17:10:34
1533
1
原创 3D数学基础(二)——坐标系的选择
3D数学基础(二)——坐标系的选择主要使用的一些坐标系世界坐标系世界坐标系是描述一个“绝对”位置的坐标系,为啥加个引号,是因为在相对于其他坐标系来说,世界坐标系所描述的尺度和空间都是最大的,所以对于其他的坐标系来说,在世界坐标系中的位置就是“绝对”的了。用比较官方的术语就是:就是能够用世界坐标系来描述其他坐标系的位置,而不能更大的、外部的坐标系来描述世界坐标系。物体坐标系物体坐标系是和...
2019-11-14 23:02:13
449
原创 OptiX资料学习笔记1——简介
OptiX资料学习笔记1——简介OptiX引擎的现状对于NVIDIA的光线追踪功能,目前有三种开源的API支持,分别为:DirectX Raytracing (DXR) DX的光线追踪APIVulkan (VK_NV_ray_tracing extension) Vulkan的光线追踪拓展APINVIDIA OptiX 最后的便是NVIDIA的OptiX引擎的APINVIDIA Op...
2019-11-05 16:46:20
3164
原创 three.js源码翻译-SpotLightShadow.js
three.js源码翻译-SpotLightShadow.js说明SpotLightShadow类是聚光灯光的阴影,SpotLightShadow的创建可以在SpotLightShadow的源码翻译部分看到,总体来说就是创建了一个透视摄像机传到LightShadow中去,默认参数投影出的效果差不多,但是同样的要更加真实的话,还是要自己设置参数。源码位置及翻译源码位置src/light/S...
2019-09-29 16:20:09
198
原创 three.js源码翻译-SpotLight.js
three.js源码翻译-SpotLight.js说明SpotLight聚光灯光源,从光源点沿圆锥体发射光,也就是离光源越远光照的尺寸也就越大,光源会随着距离的增大而衰减,类似于手电筒照射出的光的效果。源码位置及翻译源码位置src/light/SpotLight.js源码翻译/** * 点光源,从光源点沿圆锥体发射光,也就是离光源越远光照的尺寸也就越大 * * @param ...
2019-09-29 16:19:48
218
原创 three.js源码翻译-RectAreaLight.js
three.js源码翻译-RectAreaLight.js说明PointLight平面光光源从一个矩形平面上均匀地发射光线。这种光源可以用来模拟像明亮的窗户或者条状灯光光源。接受四个参数分别为光的颜色,强度,光的宽和高。这是一个新出的光源,需要用到pbr渲染的材质,否则没有灯光效果。源码位置及翻译源码位置src/light/RectAreaLight.js源码翻译/** * 平面...
2019-09-29 16:15:34
198
原创 three.js源码翻译-PointLight.js
three.js源码翻译-PointLight.js说明PointLight这个名称的翻译就直接用网上的了,为点光源。他和spot(聚光灯光源)最大的不同就是,点光源是向四周发射光,而spot则是类似一个椎体的光从一个点向各个方向发射的光源。源码位置及翻译源码位置src/light/PointLight.js源码翻译/** * point光和spot光的区别在于point是向四周发...
2019-09-29 16:14:30
199
原创 three.js源码翻译-HemisphereLight.js
three.js源码翻译-HemisphereLight.js说明HemisphereLight类为半球光,啥叫半球光呢,就是用来模拟户外太阳照射的一种光源,那HemisphereLight和DirectionLight都是模拟太阳光,那有什么不同呢。首先方向光用来模拟那种无限远的平行光,而半球光用来模拟的是那种有散射效果的太阳光,引入的原因也是因为即便是方向光加上环境光模拟出的太阳光也和真正...
2019-09-29 16:13:50
137
原创 three.js源码翻译-DirectionalLightShadow.js
three.js源码翻译-DirectionalLightShadow.js说明DirectionalLightShadow类是方向光的阴影,DirectionalLightShadow的创建可以在DirectionalLight的源码翻译部分看到,总体来说就是创建了一个正交摄像机传到LightShadow中来,但是一般默认值创建出的阴影很模糊,各种不行,需要具体的设置各个参数来创建出一个清晰...
2019-09-29 16:09:07
251
原创 three.js源码翻译-DirectionalLight.js
three.js源码翻译-DirectionalLight.js说明DirectionalLight为方向光,方向光的就是类似于很远的太阳照射出的平行光源,并且光源的强度不会随着具体的远近而变化,换句话说被照射的地方的光强是一样的。源码位置及翻译源码位置src/light/DirectionalLight.js源码翻译/** * 方向光对象,继承自light基类,接受两个参数分别为...
2019-09-29 16:08:38
177
原创 three.js源码翻译-AmbientLight.js
three.js源码翻译-AmbientLight.js说明AmbientLight类的中文意思为环境光/全局光,顾名思义环境光/全局光便是一个场景中会均匀的照亮场景中的所有物体的光。并且因为环境光/全局光没有方向,所以这个光也无法用来投射阴影源码位置及翻译源码位置src/light/AmbientLight.js源码翻译/** * 全局光对象,继承自light基类,接受两个参数,...
2019-09-29 16:08:06
145
原创 three.js源码翻译-LightShadow.js
three.js源码翻译-LightShadow.js说明该类为three.js中的阴影基类,three.js中的阴影是通过一个摄像机投影出阴影在加到场景中的,在四种光源中有两种是有阴影的分别是方向光和point/spot光源,他们分别采用正交投影和透视投影。源码位置及翻译源码位置src/light/LightShadow.js源码翻译/** * 光照阴影的基类, * * @p...
2019-09-19 15:57:53
173
原创 three.js源码翻译-Light.js
three.js源码翻译-Light.js说明Light.js是three中所有光源的基类,即所有光源继承自该方法类,同时Light方法同样的继承自Object3D。在three中基础光源有四类:环境光、方向光、pointLight/spotLight、半球光(模拟室外光源)。目前拓展的光源有区域光(区域光目前只对pbr流程的材质有效果,同时需要相应的shader)。在这些光源中可以创建阴影的...
2019-09-18 08:36:18
241
原创 gltf深入浅出——cameras
gltf深入浅出——cameras导言gltf中的摄像机也是分为两种,一种是正交摄像机,一种是透视摄像机。案例{ "cameras": [ { "name": "Finite perspective camera", "type": "perspective", "perspective": {...
2019-07-29 22:06:30
867
原创 gltf深入浅出——asset、scenes&nodes
gltf深入浅出——asset、scenes&nodesassetasset属性是每一个gltf资源的必要属性,也是区分json和gltf的关键属性。案例{ "asset": { "version": "2.0", "generator": "collada2gltf@f356b99aef8868f74877c7ca545f2cd206b9d...
2019-07-27 10:54:40
2010
原创 深入浅出glTF——textures
深入浅出glTF——textures结构图上述结构图展示了texture层和images层、sampleres层之间的关系。下面将分别解释各个层之间的具体属性。texture例子{ "textures": [ { "name":"image1", "sampler": 0, "source":...
2019-07-24 18:35:43
2290
原创 glTF全解析——materials
glTF全解析——materialsglTF的材质部分,使用的是一组参数来定义材质。这些参数为PBR的各种参数,包括金属性和粗糙性等参数。结构图结构图中展示了meshs到materials再到textures之间的过程。例子最简单的例子{ "materials": [ { "name": "gold", "pbrM...
2019-07-24 18:33:35
9341
1
原创 3D数学基础(一)——左手坐标系和右手坐标系
3D数学基础(一)——左手坐标系和右手坐标系1、左手坐标系左手坐标系的定义伸出左手,让拇指和是指成L型,大拇指向右,食指向前,中指指向前方,这样便定义好了一个左手坐标系,其中拇指为x轴,食指为Y轴,中指为Z轴。图示2、右手坐标系右手坐标系的定义右手坐标系与左手坐标系相反图示3、意义左手坐标系和右手坐标系虽然定义简单,并且可以相互转换,但是在一个场景中定义好坐标系是左手坐标...
2019-07-20 17:34:08
4286
3
原创 base64编码相关-btoa和atob及中文乱码报错问题
base64编码相关-btoa和atob最近在做二进制编码相关的东西,关于Base64的编码解码问题。遇到了一些问题。btoa();btoa函数全称就是Binary-to-ASCII,在js中用于Base64编码let encodedData = window.btoa("WEBGL");//V0VCR0w=具体的写法如上所示,接收一个字符串, 其字符分别表示要编码为 AS...
2019-04-17 21:06:21
6293
翻译 three.js源码翻译及案例(五)-GLTFLoader.js
写在前面Three中的加载脚本很多,但是核心思想是差不多的,就是文件用文件解析器加载,图片用图片解析器加载,然后json转换为对象,但是由于gltf格式可以自己编辑所以有的源码参考意义不大,glb及拓展材质都没用上就还没有翻译,以后可能会补上。源码位置该源码位置在three.js源码examples\js\loaders文件夹下源码翻译/** * @author Rich Tibb...
2019-04-17 11:07:57
13364
原创 three.js源码翻译及案例(四)-src/Util.js
写在前面该文件夹下主要为一些全局性的文件,如:- constants.js文件为全局静态变量脚本- polypills.js为兼容浏览器方法脚本- Three.Legacy.js为日志脚本- Three.js为导出脚本参考价值不很很大,故没有翻译。源码位置该源码位置在three.js源码src文件夹下源码翻译/** * @author mrdoob / http://mr...
2019-04-14 10:35:51
231
原创 three.js源码翻译及案例(三)-src/scenes/Scene.js
源码位置该源码位置在three.js源码src/scenes文件夹下源码翻译/** 本文档为Three.js翻译文档,如有任何疑问请联系:* pygmalioneffect@aliyun.com*/function Scene() { //scene 为object3D类型 所以回调到object3D方法创建默认项 Object3D.call(this); //类型为Sce...
2019-04-14 10:30:34
335
原创 如何在three.module.js添加自己的模块
如何在three.module.js添加自己的模块Three其他插件的添加方法将THREE删除,改为function xxx(){},即可完成添加。
2019-04-12 15:54:59
3131
原创 three.js源码翻译及案例(二)-src/scenes/FogExp2.js
源码翻译/** * @author mrdoob / http://mrdoob.com/ * @author alteredq / http://alteredqualia.com/ */import { Color } from '../math/Color.js';/** 本文档为Three.js翻译文档,如有任何疑问请联系:* pygmalioneffect@aliyun...
2019-04-11 23:44:04
285
原创 Three.js源码翻译及案例(一)-src/scenes/Fog.js
写在前面本系列文章主要为Three.js引擎的源码翻译及相关案例的展示。因为工作需要所以读Three的源码,也算是对自己学习的一个记录,下面正式开始翻译及相关案例。源码翻译/** * @author mrdoob / http://mrdoob.com/ * @author alteredq / http://alteredqualia.com/ */import { Colo...
2019-04-11 23:40:02
387
转载 http消息头
http消息头有关HTTP头详细和完整的说明,请参见http://www.w3.org/Protocols/ 规范。 1. HTTP消息头(1)通用信息头即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma主要: Cache-Control , Connection , Data , Pragma , Trailer , Transfer-...
2018-04-21 19:32:32
1492
转载 http statusCode
http statusCode(状态码)201-206都表示服务器成功处理了请求的状态代码,说明网页可以正常访问。 200(成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。 201(已创建) 请求成功且服务器已创建了新的资源。 202(已接受) 服务器已接受了请求,但尚未对其进行处理。 203(非授权信息) 服务器...
2018-04-21 19:11:00
1169
原创 GPU发展历史
GPU发展历史一、GPU概念的提出 1、20 世纪70 年代末和80 年代初 GPU 概念在此时被提出,使用单片集成电路(monolithic)作为图形芯片,可以对几张图片进行合成但是仅限如此。 2、20 世纪80 年代末到90 年代 基于数字信号处理芯片(digital signal processor chip)的GPU 被研发出来,与前代相...
2018-04-17 20:45:58
6607
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人