2021SC@SDUSC 【软件工程应用与实践】Claygl项目代码分析(十一)

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

2021SC@SDUSC

目录

FrameBuffer.js

1.属性

2.函数部分

getTextureWidth & getTextureHeight

bind


FrameBuffer.js

var KEY_FRAMEBUFFER = 'framebuffer';
var KEY_RENDERBUFFER = 'renderbuffer';
var KEY_RENDERBUFFER_WIDTH = KEY_RENDERBUFFER + '_width';
var KEY_RENDERBUFFER_HEIGHT = KEY_RENDERBUFFER + '_height';
var KEY_RENDERBUFFER_ATTACHED = KEY_RENDERBUFFER + '_attached';
var KEY_DEPTHTEXTURE_ATTACHED = 'depthtexture_attached';

var GL_FRAMEBUFFER = glenum.FRAMEBUFFER;
var GL_RENDERBUFFER = glenum.RENDERBUFFER;
var GL_DEPTH_ATTACHMENT = glenum.DEPTH_ATTACHMENT;
var GL_COLOR_ATTACHMENT0 = glenum.COLOR_ATTACHMENT0;

在开头定了一些关键词和参数;

1.属性

{
    depthBuffer: true,

    viewport: null,

    _width: 0,
    _height: 0,

    _textures: null,

    _boundRenderer: null,
}

默认使用深度缓冲,视区为null,长宽初始为0,纹理贴图为null,边界渲染器为null;

2.函数部分

getTe

2021SC@SDUSC软件工程应用实践Claygl项目代码分析(一) 2021SC@SDUSC 目录 一、粒子系统基本思想 二、Emitter.js 1.介绍 2.代码分析 一、粒子系统基本思想 粒子系统的基本思想:将许多简单形状的微小粒子作为基本元素聚集起来形成一个不规则的模糊物体,每个粒子均经历出生、成长、衰老和死亡的过程,粒子有关的每一参数均将受到一个随机过程的控制。 二、Emitter.js 1.介绍 emitter是“发射器”的意思,其中包含着emitter类,顾名思义,也就是存储粒子并发射的“容器”;接下来介绍里面相关代码内容。 2.代 阅读详情

相关推荐

Qt+WebAssembly学习笔记(六)win10+Qt6.4.0rc1开发环境搭建

前言:因项目的缘故,笔者有段时间没测试了,官方也修复了很问题,笔者今天记录下最新版本环境搭建。

aggs1990的专栏 3742

2021SC@SDUSC山东大学软件学院软件工程应用实践——claygl(综述)

2021SC@SDUSC 目录 一.claygl项目简介 二.github地址 三.项目下载及配置 四.简单的使用实例 五.更多应用 六.组内分工 一.claygl项目简介 1.claygl描述 ClayGL是一个Web 3D图形库,用于构建支持3D Web的应用程序,例如在真实的地理地图上绘制交互式3D街道地图。ClayGL可作为开源项目使用。 2.claygl特点 (1)轻巧 (2)可缩放图形 (3)可配置高质量的图形 ...

weixin_54533613的博客 548

FFmpeg音频转AAC/M4A终极指南:从基础到高级参数调优

本文详细介绍了使用FFmpeg将音频转换为AAC/M4A格式的完整指南,从基础安装到高级参数调优。涵盖FDK-AAC编码器的使用、VBR/CBR模式选择、音质控制技巧以及实战案例,帮助用户在不同场景下实现高质量的音频转换。特别适合需要优化音频文件大小音质平衡的开发者和音频处理专业人士。

rust6ferris的博客 700

2021SC@SDUSC ClayGL项目综述

软件简介 ClayGL 是一个 WebGL 图形库,用于构建可伸缩的 Web3D 应用程序。

Yes_Utopia的博客 460

LCD framebuffer

一、FrameBuffer的原理    FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口。    Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出 FrameBuffer这个设备来供用户态进程实现直接写屏。Framebuffer机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过 Frameb

zhenwenxian的专栏 2203

2021SC@SDUSC软件工程应用实践Claygl项目代码分析(十三)

2021SC@SDUSC 目录 FrameBuffer.js 2.函数部分 checkStatus attach _doDetach FrameBuffer.js 2.函数部分 checkStatus checkStatus: function (_gl) { return _gl.checkFramebufferStatus(GL_FRAMEBUFFER); }, 用于检测帧缓冲状态; attach if (!texture

leaf_er的博客 674

【OpenGL】OpenGL帧缓存对象(FBO:Frame Buffer Object)

翻译的,如果不正确,敬请谅解和指正。 OpenGL Frame BufferObject(FBO) Overview:     在OpenGL渲染管线中,几何数据和纹理经过多次转化和多次测试,最后以二维像素的形式显示在屏幕上。OpenGL管线的最终渲染目的地被称作帧缓存(framebuffer)。帧缓冲是一些二维数组和OpenG所使用的存储区的集合:颜色缓存、深度缓存、模板缓存和累计缓存。一

计算机专业同学的充电站。 6万+

【OpenGL】延迟渲染(Deferred Shading)技术详解

一、Deferred shading技术简介 Deferred shading是这样一种技术:将光照/渲染计算推迟到第二步进行计算。我们这样做的目的是为了避免多次(超过1次)渲染同一个像素。 其基本思想如下: 1、在第一步中,我们渲染场景,但是通常情况下应用反射模型计算片断颜色不同的是,我们只是简单的将几何信息(位置坐标,法线向量,纹理坐标,反射系数等等)存储在中间缓冲区中,这样的缓冲区我...

mmdev 1269

2021SC@SDUSC软件工程应用实践Claygl项目代码分析(十)

2021SC@SDUSC 目录 Field.js(Field) ForceField.js(ForceField) applyTo(...) 涉及函数:vec3.scaleAndAdd(...) Field.js(Field) var Field = Base.extend({}, { applyTo: function(velocity, position, weight, deltaTime) {} }); 继承Base的定义函数applyTo()的类; ForceF

leaf_er的博客 253

2021SC@SDUSC山东大学软件学院软件工程应用实践——claygl(源代码分析6)

2021SC@SDUSC 一.clay.async.Task类概述 二.clay.async.Task类的作用 三.clay.async.Task类源码分析 1.new Task() 该函数为Task类的构造函数,无参数 其源代码如下: function Task() { this._fullfilled = false; this._rejected = false; } 从源代码可以看出,Task类内部有两个成员变量,即_fullfi...

weixin_54533613的博客 1118

2021SC@SDUSC软件工程应用实践Claygl项目代码分析(五)

2021SC@SDUSC (接上篇) ParticleRenderable.js 3.函数 function(){ this.geometry = new Geometry({ dynamic: true }); if (!this.material) { this.material = new Material({ shader: particleShader, transparent

leaf_er的博客 1825

2021SC@SDUSC ClayGL Mesh类分析(十一)

2021SC@SDUSC ClayGL Mesh类分析(十一)

Yes_Utopia的博客 343

2021SC@SDUSC ClayGL Camera类分析()

2021SC@SDUSC ClayGL Camera类分析()

Yes_Utopia的博客 576

2021SC@SDUSC山东大学软件学院软件工程应用实践——claygl(源码分析1)

2021SC@SDUSC 目录 一.clay.animation.Animator类概述 二.clay.animation.Animator类的作用 三.clay.animation.Animator类源码分析 1. new Animator(target, loop, getter, setter, interpolater) 2. delay(time) → {clay.animation.Animator} 3. done(func) → {clay.animation.Anima...

weixin_54533613的博客 603

2021SC@SDUSC软件工程应用实践Claygl项目代码分析(七)

2021SC@SDUSC (接上文) ParticleRenderable.js 4.2函数 updateParticles updateParticles: function(deltaTime) { deltaTime /= 1000; this._elapsedTime += deltaTime; var particles = this._particles; if (this._emitting) {

leaf_er的博客 285

2021SC@SDUSC软件工程应用实践Claygl项目代码分析(四)

ParticleRenderable.js 一、ParticleRenderable对象 1.构建 var ParticleRenderable = Renderable.extend(...) 继承Renderable而定义的对象; 2.属性 { loop: true, oneshot: false, duration: 1, spriteAnimationTileX: 1, spriteAnimationTileY:

leaf_er的博客 432

2021SC@SDUSC软件工程应用实践Claygl项目代码分析(二)

一、Particle.js 1.Particle this.position = new Vector3(); 设置位置,类型为clay.Vector3,默认为(0,0,0); this.rotation = new Vector3(); 设置旋偏转角度,类型为clay.Vector3,默认为(0,0,0); this.velocity = null; 设置速度,类型为clay.Vector3,默认为null; this.angularVelocity = null; 设置加速度,

leaf_er的博客 348

2021SC@SDUSC ClayGL ShadowMap类分析(十三)

2021SC@SDUSC ClayGL ShadowMap类分析(十三)

Yes_Utopia的博客 401

2021SC@SDUSC软件工程应用实践Claygl项目代码分析(三)

一、Particle.js Particle.prototype.update Particle.prototype.update = function(deltaTime) { if (this.velocity) { vec3.scaleAndAdd(this.position.array, this.position.array, this.velocity.array, deltaTime); } if (this.angularVelocity) {

leaf_er的博客 240

2021SC@SDUSC软件工程应用实践Claygl项目代码分析(六)

2021SC@SDUSC 目录 ParticleRenderable.js 4.2函数 addEmitter&removeEmitter addField&removeField reset isFinished ParticleRenderable.js 4.2函数 addEmitter&removeEmitter addEmitter: function(emitter) { this._emitters.push(emitte

leaf_er的博客 220

4046PLL.rar_4046 pll_4046 锁相_4046PLL_锁相环_锁相环电路图

采用4046实现的10m以下信号的锁相环电路图。

上一篇: 2021SC@SDUSC 【软件工程应用与实践】Claygl项目代码分析(十)
下一篇: 2021SC@SDUSC 【软件工程应用与实践】Claygl项目代码分析(十二)
leaf_er
博客等级 码龄5年 0粉丝 · 24原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值