From 505c4e047e770ee36393963c159f9a87795661d0 Mon Sep 17 00:00:00 2001 From: lmj01 Date: Tue, 25 Jun 2024 17:24:41 +0800 Subject: [PATCH] update --- cg/mesh/NURBS.md | 1 + cg/threejs/src/renderers/WebGLRenderTarget.md | 15 -- cg/threejs/src/renderers/WebGLRenderer.md | 145 ------------------ cg/threejs/src/renderers/parser.js | 45 ------ cg/threejs/src/renderers/shaders.md | 26 ---- .../src/renderers/webgl/WebGLAttributes.md | 15 -- .../src/renderers/webgl/WebGLBackground.md | 10 -- .../renderers/webgl/WebGLBufferRenderer.md | 7 - .../src/renderers/webgl/WebGLClipping.md | 14 -- .../webgl/WebGLIndexedBufferRenderer.md | 7 - cg/threejs/src/renderers/webgl/WebGLInfo.md | 3 - cg/threejs/src/renderers/webgl/WebGLLights.md | 9 -- .../src/renderers/webgl/WebGLProgram.md | 63 -------- .../src/renderers/webgl/WebGLPrograms.md | 16 -- .../src/renderers/webgl/WebGLRenderLists.md | 13 -- cg/threejs/src/renderers/webgl/WebGLShader.md | 13 -- .../src/renderers/webgl/WebGLShadowMap.md | 12 -- cg/threejs/src/renderers/webgl/WebGLState.md | 64 -------- .../src/renderers/webgl/WebGLTextures.md | 74 --------- .../src/renderers/webgl/WebGLUniforms.md | 16 -- cg/threejs/src/renderers/webgl/WebGLUtils.md | 6 - cg/threejs/threejs.md | 2 - web/framework.md | 1 + web/pkg.md | 31 ++-- 24 files changed, 15 insertions(+), 593 deletions(-) delete mode 100644 cg/threejs/src/renderers/WebGLRenderTarget.md delete mode 100644 cg/threejs/src/renderers/WebGLRenderer.md delete mode 100644 cg/threejs/src/renderers/parser.js delete mode 100644 cg/threejs/src/renderers/shaders.md delete mode 100644 cg/threejs/src/renderers/webgl/WebGLAttributes.md delete mode 100644 cg/threejs/src/renderers/webgl/WebGLBackground.md delete mode 100644 cg/threejs/src/renderers/webgl/WebGLBufferRenderer.md delete mode 100644 cg/threejs/src/renderers/webgl/WebGLClipping.md delete mode 100644 cg/threejs/src/renderers/webgl/WebGLIndexedBufferRenderer.md delete mode 100644 cg/threejs/src/renderers/webgl/WebGLInfo.md delete mode 100644 cg/threejs/src/renderers/webgl/WebGLLights.md delete mode 100644 cg/threejs/src/renderers/webgl/WebGLProgram.md delete mode 100644 cg/threejs/src/renderers/webgl/WebGLPrograms.md delete mode 100644 cg/threejs/src/renderers/webgl/WebGLRenderLists.md delete mode 100644 cg/threejs/src/renderers/webgl/WebGLShader.md delete mode 100644 cg/threejs/src/renderers/webgl/WebGLShadowMap.md delete mode 100644 cg/threejs/src/renderers/webgl/WebGLState.md delete mode 100644 cg/threejs/src/renderers/webgl/WebGLTextures.md delete mode 100644 cg/threejs/src/renderers/webgl/WebGLUniforms.md delete mode 100644 cg/threejs/src/renderers/webgl/WebGLUtils.md diff --git a/cg/mesh/NURBS.md b/cg/mesh/NURBS.md index 41c49dc..6d03135 100644 --- a/cg/mesh/NURBS.md +++ b/cg/mesh/NURBS.md @@ -10,6 +10,7 @@ - [A small C++ library containing some NURBS-based geometric modeling algorithms and features I've been working on since 2013.](https://gitlab.com/ssv/Mobius) - [LNLib is a C++ NURBS Algorithms Library. These algorithms are primary referenced from The NURBS Book 2nd Edition. ](https://github.com/BIMCoderLiang/LNLib) - [LNLibViewer is a 3d viewer matches C++ NURBS algorithm library LNLib](https://github.com/BIMCoderLiang/LNLibViewer) +- [B样条曲面拟合球](https://github.com/supuo/b-spline) ### [Ken Versprille, the Inventor of NURBS, Tells about Past, Present, and Future of CAD 2013-5-30]() diff --git a/cg/threejs/src/renderers/WebGLRenderTarget.md b/cg/threejs/src/renderers/WebGLRenderTarget.md deleted file mode 100644 index dce9ab3..0000000 --- a/cg/threejs/src/renderers/WebGLRenderTarget.md +++ /dev/null @@ -1,15 +0,0 @@ - -# WebGLRenderTarget -继承自EventDispatcher对象 -*** - -## WebGLRenderTarget -构造函数,重要的成员有三个 -- scissor,进行裁剪区域 -- viewport,视图大小 -- texture,存放渲染的结果 - -## WebGLRenderTargetCube -继承WebGLRenderTarget -## WebGLMultisampleRenderTarget -继承WebGLRenderTarget diff --git a/cg/threejs/src/renderers/WebGLRenderer.md b/cg/threejs/src/renderers/WebGLRenderer.md deleted file mode 100644 index 224edd7..0000000 --- a/cg/threejs/src/renderers/WebGLRenderer.md +++ /dev/null @@ -1,145 +0,0 @@ -# WebGLRenderer - -## WebGLContextAttributes -context参数,支持webgl,webgl2,[WebXR](https://immersive-web.github.io/webxr/#contextcompatibility) - -## initGLContext -是对src/renderers/webgl中的对象进行初始化,设置上下文使用的变量 - -## Material -### init -### dispose - -## this.renderBufferImmediate -对数据直接进行绘制 -使用到的函数有 -- gl.createBuffer -- gl.bindBuffer -- gl.bufferData -- gl.vertexAttribPointer -- gl.drawArrays -没有走内部的管理,直接绘制结果 - -## this.renderBufferDirect -调用setupVertexAttributees -设置渲染的参数,如三角形还是直线模式或wireframe -调用WebGLBufferRenderer或WebGLIndexedBufferRenderer来渲染object - -## setupVertexAttributes -需要使用扩展ANGLE_instanced_arrays - -使用的函数有 - -- gl.bindBuffer -- gl.vertexAttribPointer -- gl.vertexAttrib2fv -- gl.vertexAttrib3fv -- gl.vertexAttrib4fv -- gl.vertexAttrib1fv - -## this.compile - -遍历场景收集light和shadow - -遍历场景初始化material - - -## this.render -### 更新 -1. scene.updateMatrixWorld -2. camera.updateMatrixWorld -3. vr.enabled & camera = vr.getCamera -### 获取状态 -```javascript -currentRenderState = renderStates.get(scene, camera); -currentRenderState.init(); -``` -### 投影矩阵 -```javascript -_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse ); -_frustum.setFromMatrix( _projScreenMatrix ); -``` -### 获取渲染的列表 -```javascript -currentRenderList = renderLists.get( scene, camera ); -currentRenderList.init(); -projectObject( scene, camera, 0, _this.sortObjects ); -if ( _this.sortObjects === true ) { - currentRenderList.sort(); -} -``` -### shadow -### background -### render scene -```javascript -if (scene.overrideMaterial) { - renderObjects(opaqueObjects, scene, camera, overrideMaterial); - renderObjects(transparentObjects, scene, camera, overrideMaterial); -} else { - renderObjects(opaqueObjects, scene, camera); - renderObjects(transparentObjects, scene, camera); -} -``` -### after render -### render to target - -### mask状态更改 -ensure depth buffer writing is enabled so it can be cleared on next render. -深度和颜色buffer的test和mask设置为true -polygonoffset(false) -### vr -提交当前帧 - -## projectObject - -首先检查layers是不是同一层。 - -根据不同object的类型,存入渲染状态和渲染列表中 - -## renderObjects - -对renderList中的对象进行渲染,根据camera的类型进行分类渲染 - -## renderObject - -依次调用object.onBeforeRender,renderXXX和object.onAfterRender函数 - -会区分是立即渲染和管理渲染,即渲染时根据frame更新的 - -## initMaterial - -判断shader是否改变了 ,改变则更新 - -统计material的morphTarget和morphNormal数量 - -把material中的fog和light更新到uniforms中 - -## setProgram - -设置clip状态 - -判断material是否更新 - -判断更新camera相关的 - -判断material.skinning更新 - -判断material刷新 - -更新object的modelViewMatrix,normalMatrix,modelMatrix值 - -## refreshUniformsXXX - -刷新shader的uniform变量 - -## this.setRenderTarget - -用到函数有 - -- gl.bindFramebuffer -- gl.framebufferTexture2D - -## this.readRenderTargetPixels - - - diff --git a/cg/threejs/src/renderers/parser.js b/cg/threejs/src/renderers/parser.js deleted file mode 100644 index 24800b4..0000000 --- a/cg/threejs/src/renderers/parser.js +++ /dev/null @@ -1,45 +0,0 @@ -function parseIncludes( string ) { - - var pattern = /^[ \t]*#include +<([\w\d./]+)>/gm; - - console.log('type is ', typeof string); - - function replace( match, include ) { - - var replace = - ShaderChunk[ include ]; - //'the replace str'; - console.log('replace--',match); - console.log('replace--',include); - - if ( replace === undefined ) { - - //throw new Error( 'Can not resolve #include <' + include + '>' ); - console.log('Can not resolve #include <' + include + '>'); - return ''; - } - - return parseIncludes( replace ); - - } - - return string.replace( pattern, replace ); - -} - -let ShaderChunk = { - test: `#include \nstatic int a;`, - test2: `final int result;`, -}; - -let str1 = ` -#include -#include -#include -int main() { - return 0; -} -`; -let res = parseIncludes(str1); -console.log('result is :', res); - diff --git a/cg/threejs/src/renderers/shaders.md b/cg/threejs/src/renderers/shaders.md deleted file mode 100644 index 2f455c1..0000000 --- a/cg/threejs/src/renderers/shaders.md +++ /dev/null @@ -1,26 +0,0 @@ -# shaders - -threejs使用了一个字符串拼接来解析shader的代码,这种方式使得变量名在一定程度上是固定的, -这就需要对内部的shader的模型更熟悉才能更加轻松的改变 - -## ShaderChunk - -是对特定的代码的剥离,把代码尽量分离为最小的独立单位 - -## ShaderLib - -对应着material的shader代码,这样保持接口的一致性,material的主要是收集了材质的参数值,这些值在 -shader中进行使用 - -## shader模块化 - -通过ShaderChunk和ShaderLib来封装了代码,主要到一个问题,字符串的拼接长度肯定是受影响的,这种痛苦 -在之前的开发过程中是有一朝被蛇咬,十年怕井绳,但是这里的shader为什么还这样处理呢?而且每个字符串 -都需要分离为单行。 -通过减少空格和换行,且shader的代码不会太高,内存消耗也不会太大! -这也是一行代码直接在"one-line-shader-code"这样组织起来的原因所在吧! - -特别是经过编辑器处理时的空格数量会导致字符串所占内存超大,这个是处理别人的代码编辑器时遇到的问题。 - - - diff --git a/cg/threejs/src/renderers/webgl/WebGLAttributes.md b/cg/threejs/src/renderers/webgl/WebGLAttributes.md deleted file mode 100644 index 2de57ba..0000000 --- a/cg/threejs/src/renderers/webgl/WebGLAttributes.md +++ /dev/null @@ -1,15 +0,0 @@ -# WebGLAttributes -就是对buffer进行封装的 -`var buffers = new WeakMap();` - -## createBuffer -涉及函数有 -- gl.createBuffer -- gl.bindBuffer -- gl.bufferData - -## updateBuffer -涉及函数有 -- gl.bindBuffer -- gl.bufferData -- gl.bufferSubData diff --git a/cg/threejs/src/renderers/webgl/WebGLBackground.md b/cg/threejs/src/renderers/webgl/WebGLBackground.md deleted file mode 100644 index f1886bf..0000000 --- a/cg/threejs/src/renderers/webgl/WebGLBackground.md +++ /dev/null @@ -1,10 +0,0 @@ -# WebGLBackground - -clearColor和clearAlpha - -## render -分两种情况 -- background.isCubeTexture or isWebGLRenderTargetCube, BoxMesh,只渲染BackSide -- background.isTexture, PlaneMesh,只渲染FrontSide -最后把mesh放在已排序的renderList中 - diff --git a/cg/threejs/src/renderers/webgl/WebGLBufferRenderer.md b/cg/threejs/src/renderers/webgl/WebGLBufferRenderer.md deleted file mode 100644 index 9784525..0000000 --- a/cg/threejs/src/renderers/webgl/WebGLBufferRenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# WebGLBufferRenderer - -涉及函数有 -- gl.drawArrays -- gl.drawArraysInstanced -- gl.drawArraysInstancedANGLE - diff --git a/cg/threejs/src/renderers/webgl/WebGLClipping.md b/cg/threejs/src/renderers/webgl/WebGLClipping.md deleted file mode 100644 index c1672c8..0000000 --- a/cg/threejs/src/renderers/webgl/WebGLClipping.md +++ /dev/null @@ -1,14 +0,0 @@ -# WebGLClipping - -```javascript -plane = new Plane(); -viewNormalMatrix = new Matrxi3() -``` - -## projectPlanes -```javascript -viewMatrix = camera.matrixWorldInverse; -viewNormalMatrix.getNormalMatrix(viewMatrix); -plane.applyMatrix4(viewMatrix, viewNormalMatrix); -``` - diff --git a/cg/threejs/src/renderers/webgl/WebGLIndexedBufferRenderer.md b/cg/threejs/src/renderers/webgl/WebGLIndexedBufferRenderer.md deleted file mode 100644 index ecb4e26..0000000 --- a/cg/threejs/src/renderers/webgl/WebGLIndexedBufferRenderer.md +++ /dev/null @@ -1,7 +0,0 @@ -# WebGLIndexedBufferRenderer - -涉及函数有 -- gl.drawElements -- gl.drawElementsInstanced -- gl.drawElementsInstancedANGLE - diff --git a/cg/threejs/src/renderers/webgl/WebGLInfo.md b/cg/threejs/src/renderers/webgl/WebGLInfo.md deleted file mode 100644 index b6ad3da..0000000 --- a/cg/threejs/src/renderers/webgl/WebGLInfo.md +++ /dev/null @@ -1,3 +0,0 @@ -# WebGLInfo - -内部统计数据 \ No newline at end of file diff --git a/cg/threejs/src/renderers/webgl/WebGLLights.md b/cg/threejs/src/renderers/webgl/WebGLLights.md deleted file mode 100644 index b69cf20..0000000 --- a/cg/threejs/src/renderers/webgl/WebGLLights.md +++ /dev/null @@ -1,9 +0,0 @@ -# WebGLLights - -## UniformsCache -对light的type的参数进行缓存 - -## WebGLLights - -### setup -把light的参数转换为uniformCache中 \ No newline at end of file diff --git a/cg/threejs/src/renderers/webgl/WebGLProgram.md b/cg/threejs/src/renderers/webgl/WebGLProgram.md deleted file mode 100644 index 5483249..0000000 --- a/cg/threejs/src/renderers/webgl/WebGLProgram.md +++ /dev/null @@ -1,63 +0,0 @@ -# WebGLProgram -在这里,会拼接完所有的shader的源码,因为在这里会attach到program上的 -## getEncodingComponents -编码方式:THREE.LinearEncoding -color-space支持Linear, sRGB,RGBE(E for shared exponent),RGBM(M for shared multiplier),RGBD(D for shared divider),LogLuv,Gamma -[rgbm介绍](http://lousodrome.net/blog/light/tag/rgbm/) - -## getToneMappingFunction -这里有个中间层,通过字符串来拼接函数,这些函数时shader中的函数 -- Linear -- Reinhard -- Uncharted2 -- Cineon -- ACESFilmic - -## generateExtensions -设置扩展的属性,shader的代码 - -## generateDefines -shader的宏替换 - -## fetchAttributeLocations -涉及函数有 -- gl.getProgramParameter -- gl.getActiveAttrib -- gl.getAttribLocation - -## parseIncludes -解析shader中的#include字段内容,持续递归调用!在compiler阶段,我一直好奇如何处理,原来就是这样一个递归的字符串操作而已!这就是知识点在了解前与了解后的心理变化吗? -```javascript -function parseIncludes(str) { - let pattern = /^[ \t]*#include +<([\w\d./]+)>/gm; - let replace = function(match, include) { - let replace = chunkLib[include]; - return parseIncludes(replace); - } - return str.replace(pattern, replace); -} -``` - -## unrollLoops -快速替换for循环中的snippet小段代码 - -## WebGLProgram -shadow map type -- SHADOWMAP_TYPE_BASIC -- SHADOWMAP_TYPE_PCF -- SHADOWMAP_TYPE_PCF_SOFT - -环境映射 -envMapXXX - -webgl和webgl2的所有shader都在这个阶段进行了替换,只获取需要的shader代码,都是通过字符串的替换拼接等操作完成的。 - -涉及函数有 -- gl.createProgram -- gl.attachShader -- gl.bindAttribLocation -- gl.linkProgram -- gl.getProgramParameter -- gl.deleteShader -- gl.deleteProgram - diff --git a/cg/threejs/src/renderers/webgl/WebGLPrograms.md b/cg/threejs/src/renderers/webgl/WebGLPrograms.md deleted file mode 100644 index 61aa116..0000000 --- a/cg/threejs/src/renderers/webgl/WebGLPrograms.md +++ /dev/null @@ -1,16 +0,0 @@ -# WebGLPrograms - -## shaderIDs -这里对应着material.type字段,是一个映射对象 - -## allocateBones -申请bone的 - -## this.getParameters -材质相关的大多数参数都可以通过这个函数获取 - -## this.getProgramCode -材质相关缓存的代码 - -## this.acquireProgram -查询program,是通过code来查询的 \ No newline at end of file diff --git a/cg/threejs/src/renderers/webgl/WebGLRenderLists.md b/cg/threejs/src/renderers/webgl/WebGLRenderLists.md deleted file mode 100644 index 15fa913..0000000 --- a/cg/threejs/src/renderers/webgl/WebGLRenderLists.md +++ /dev/null @@ -1,13 +0,0 @@ -# WebGLRenderLists - -## painterSortStable -非透明对象渲染对象的排序 -## reversePainterSortStable -透明对象的渲染排序 -## WebGLRenderList - -### getNextRenderItem -构造renderItem对象 - -## WebGLRenderLists -管理着RenderList,是根据scene和camera来定义一个list的 diff --git a/cg/threejs/src/renderers/webgl/WebGLShader.md b/cg/threejs/src/renderers/webgl/WebGLShader.md deleted file mode 100644 index eec6d02..0000000 --- a/cg/threejs/src/renderers/webgl/WebGLShader.md +++ /dev/null @@ -1,13 +0,0 @@ -# WebGLShader - -## addLineNumbers -把所有源码分行处理,在每行前面加一个number -## WebGLShader -涉及函数有 -- gl.createShader -- gl.shaderSource -- gl.compileShader -- gl.getShaderParameter - * gl.COMPILE_STATUS -- gl.getShaderInfoLog - * 这里会把日志输出来,这里会调用addLineNumbers把源码的行号给输出 \ No newline at end of file diff --git a/cg/threejs/src/renderers/webgl/WebGLShadowMap.md b/cg/threejs/src/renderers/webgl/WebGLShadowMap.md deleted file mode 100644 index 7761e70..0000000 --- a/cg/threejs/src/renderers/webgl/WebGLShadowMap.md +++ /dev/null @@ -1,12 +0,0 @@ -# WebGLShadowMap -依赖了材质 -- MeshDepthMaterial -- MeshDistanceMaterial - -## this.render -shadow是绑定在光源上的 -而shadow.map是一个WebGLRenderTarget对象, -也就是shadow就是在正常绘制情况下增加一次绘制,使得渲染后的结果是符合阴影的。 -## getDepthMaterial - -## renderObject \ No newline at end of file diff --git a/cg/threejs/src/renderers/webgl/WebGLState.md b/cg/threejs/src/renderers/webgl/WebGLState.md deleted file mode 100644 index 4f1b0fa..0000000 --- a/cg/threejs/src/renderers/webgl/WebGLState.md +++ /dev/null @@ -1,64 +0,0 @@ - -# WebGLState.js - -> 状态 - -*** -## WebGLColorBuffer -涉及到的函数有 -- gl.colorMask -- gl.clearColor - -## WebGLDepthBuffer -涉及到的函数有 -- gl.enable or gl.disable gl.DEPTH_TEST -- gl.depthMask -- gl.depthFunc -- gl.clearDepth - -## WebGLStencilBuffer -涉及函数有 -- gl.enable or gl.disable gl.STENCIL_TEST -- gl.stencilMask -- gl.stencilFunc -- gl.stencilOp -- gl.clearStencil - -## WebGLState -涉及函数有 -- gl.getParameter - * gl.MAX_VERTEX_ATTRIBS顶点属性支持的最大值,分别定义了最大的newAttribuutes, enabledAttributes, attributeDivisors. - * gl.enableVertexAttribArray - * gl.disableVertexAttribArray - * gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS最大的纹理单元 - * gl.VERSION版本,返回字符串为:WebGL num 或 OpenGL ES 2 - * gl.COMPRESSED_TEXTURE_FORMATS获取纹理压缩格式 - * gl.compressedTexImage2D.appply -- gl.createTexture默认创建两个texture,一个2D,一个Cube-Map - * gl.bindTexture - * gl.texParameteri - * gl.texImage2D or gl.texImage3D - * gl.texImage2D.apply(gl, arguments); 调用方法 - * gl.activeTexture -- gl.cullFace - * enable or disable gl.CULL_FACE - * gl.cullFace gl.BACK, gl.FRONT, gl.FRONT_AND_BACK -- gl.lineWidth这个函数要硬件支持 -- gl.useProgram -- blending混合 - * gl.blendEquation - * gl.blendFuncSeparate - * gl.blendFunc -- gl.polygonOffset - * gl.POLYGON_OFFSET_FILL // 目前只处理了此模式 -- gl.scissor和gl.viewport - * gl.SCISSOR_TEST裁剪测试 -- material - * side - * gl.frontFace gl.CW or gl.CCW - * blending - * depthBuffer - * colorBuffer - * polygonOffset - -主要封装了对这些函数的调用 diff --git a/cg/threejs/src/renderers/webgl/WebGLTextures.md b/cg/threejs/src/renderers/webgl/WebGLTextures.md deleted file mode 100644 index 796237f..0000000 --- a/cg/threejs/src/renderers/webgl/WebGLTextures.md +++ /dev/null @@ -1,74 +0,0 @@ -# WebGLTextures - -## createCanvas -尽量使用OfffscreenCanvas,特别是在web workers中使用 - -## resizeImage -需要时才resize -image必须是 -- HTMLImageElement -- HTMLCanvasElement -- ImageBitmap - -## textureNeedsPowerOfTwo -webGL2支持非PowerOfTwo -texture wrap不能是ClampToEdgeWrapping -texture minFilter不能是NearestFilter且不能是LinearFilter - -## textureNeedsGenerateMipmaps -WebGLAPI支持且texture minFilter不能是NearestFilter且不能是LinearFilter - -## generateMipmap -涉及函数 -- gl.generateMipmap对应的texture生成mipmap - -## getInternalFormat -仅支持WebGL2 -注意RGB不支持float,RGBA支持 - -## deallocateTexture -涉及函数 -- gl.deleteTexture - -## deallocateRenderTarget -涉及函数有 -- gl.deleteTexture -- gl.deleteFramebuffer -- gl.deleteRenderbuffer - -## setTextureCube -涉及函数有 -- gl.pixelStorei - -## uploadTexture -涉及函数有 -- gl.pixelStorei - * gl.UNPACK_FLIP_Y_WEBGL - * gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL - * gl.UNPACK_ALIGNMENT - -texture类型有 -- isDepthTexture -- isDataTexture -- isCompressedTexture -- isDataTexture2DArray -- isDataTexture3D -- regular texture(image, video, canvas) - -## setupFrameBufferTexture -涉及函数有 -- gl.bindFramebuffer -- gl.framebufferTexture - -## setupRenderBufferStorage -涉及函数有 -- gl.bindRenderrbuffer -- gl.renderbufferStorage[Multisample] -- gl.framebufferRenderbuffer - -## setupDepthTexture - -## setupDepthRenderbuffer - -## setupRenderTarget - diff --git a/cg/threejs/src/renderers/webgl/WebGLUniforms.md b/cg/threejs/src/renderers/webgl/WebGLUniforms.md deleted file mode 100644 index 2133c22..0000000 --- a/cg/threejs/src/renderers/webgl/WebGLUniforms.md +++ /dev/null @@ -1,16 +0,0 @@ -# WebGLUniforms - -Uniforms of a program -这是一个顶层容器,组织成一个tree structure -- .seq - array of nested uniforms -- .map - nested uniforms by name - -声明了一些变量,用以管理与缓存 -## flatten -把vectors和matrices进行flatten成数组, -因为gl.uniformXXXv只接收数据指针,不接收包含数据的对象 - -## arrayEqual -## copyArray - - diff --git a/cg/threejs/src/renderers/webgl/WebGLUtils.md b/cg/threejs/src/renderers/webgl/WebGLUtils.md deleted file mode 100644 index 26fec99..0000000 --- a/cg/threejs/src/renderers/webgl/WebGLUtils.md +++ /dev/null @@ -1,6 +0,0 @@ -# WebGLUtils - -目前只做一件事,把threejs常量转换为WebGL的常量 - -## WebGLUtils -基本上使用的 \ No newline at end of file diff --git a/cg/threejs/threejs.md b/cg/threejs/threejs.md index 1da8adf..d9e1491 100644 --- a/cg/threejs/threejs.md +++ b/cg/threejs/threejs.md @@ -575,8 +575,6 @@ export { XXXs };`这样写的好处是把接口分离开,存储也是在对应 # Three.js -> review源代码过程中的感受 - ## 技术细节 ### version 很多资源有个version,也就是一个int,表示使用的资源,只要有属性变更就表示需要更新的资源了。与C/C++的相比,需要一个标记的类似的作用。 diff --git a/web/framework.md b/web/framework.md index c7717d5..2a5ddf3 100644 --- a/web/framework.md +++ b/web/framework.md @@ -19,6 +19,7 @@ Vue3.0新增了一个组件Teleport组件,将其所在组件模板内容内容 ### 参考 - [Vue 技术栈 Vue3 + Pinia + Vite5 实现, 可参考别人的代码逻辑](https://github.com/zyronon/douyin) +- [入门级vue3+vite+Ts的多页面(MPA)模板,支持单模块构建,引入pinia,vueUse,naive-ui,axios等主流库用于开发,配置husky+commit+prettier+eslint来规范代码。 ](https://github.com/dv-cli/vue3-vite-multiple-page) ## [React](https://react.dev/) diff --git a/web/pkg.md b/web/pkg.md index e41fbee..fa35609 100644 --- a/web/pkg.md +++ b/web/pkg.md @@ -16,10 +16,6 @@ node -p // node REPL 交互环境 ```shell npm init // 初始化工程 -npm init -w ./packages/a // 创建子包 -npm install libraryX --workspace packages/pA // 子工作区按照特定依赖 -npm install libraryX --save-dev --workspaces // 安装 -npm i libraryX -w packages/pA npm install XXX 安装但不写入package.json npm install XXX --save 安装且写入package.json中的dependencies npm install XXX --save-dev 安装且写入package.json中的devDependencies @@ -29,31 +25,30 @@ npm install xxx@latest --save-dev 安装最新版本 npm install -ddd // 可以查看安装的细节, 查看安装细节卡住哪里 npm install relative-path // 把某个本地包安装进当前工程 npm lx xxx 查询依赖的库信息 -// proxy代理设置 -npm config get proxy +npm config get proxy // proxy代理设置 npm config get https-proxy -// 确定没有设置代理, 返回为null, 否则强制设置为null -npm config set proxy null +npm config set proxy null // 确定没有设置代理, 返回为null, 否则强制设置为null npm config set https-proxy null -// 镜像设置 -npm config get registry // 获取 +npm config get registry // 获取 // 镜像设置 npm config delete registry // 删除注册表 npm config set registry https://registry.npmmirror.com // 使用镜像源 npm config set registry https://registry.npmjs.org // 官方源 npm install -g mirror-config-china --registry=https://registry.npm.taobao.org npm install --registry=https://registry.npm.taobao.org 指定淘宝源的安装 -// 清理 -npm config get cache // 缓存路径 +npm config get cache // 清理 // 缓存路径 npm cache clean --force npm config list ``` -#### 2024-6-7 -```json -"script":{ - "dev": "cross-env VITE_APP_VERSION=$(node -p \"require('./package.json').version\") vite --mode localdev", -} + +#### [workspaces](https://docs.npmjs.com/cli/v10/using-npm/workspaces) + +```shell +npm init -w ./packages/a // 创建子包 +npm install abbrev -w a +npm install libraryX --workspace packages/pA // 子工作区按照特定依赖 +npm install libraryX --save-dev --workspaces // 安装 +npm i libraryX -w packages/pA ``` -在sprintRay的一个AICAD中,通过这样来获取环境变量,其实 ### [pnpm](https://pnpm.io/)