自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(292)
  • 资源 (13)
  • 收藏
  • 关注

原创 Yoga Styling (2)

Display 控制节点应遵循的布局规范。Flex(默认值):遵循 CSS 弹性盒模型(CSS Flexible Box Model)规范。None:节点会从布局树中移除,且不可见。

2025-12-17 08:00:00 533

原创 Yoga Styling (3)

属性会在弹性容器的行与列之间添加间距。你可以指定间距仅作用于行之间、仅作用于列之间,或同时作用于行和列之间。若节点设置了固定尺寸,且定义了相对的两个边缘的偏移量(例如,同时为右边缘和左边缘分配了数值),则左边缘和上边缘的偏移量具有优先级。上的总尺寸超出容器尺寸时的处理方式。默认情况下,子元素会被强制排列在同一行(可能导致子元素被缩小)。当启用换行后,可通过。属性指定多行子元素在容器中的排布方式。属性用于设置在容器上,控制当子元素在。

2025-12-17 08:00:00 337

原创 Yoga 高级教程

在实际应用中,常会遇到部分内容的尺寸依赖于 Yoga 无法表达的因素的情况,这类内容通常包括文本,或是使用其他系统进行渲染和布局的视图。而在后续的布局计算中,只要父节点的约束条件未发生改变,所有非 “脏” 状态的节点都会被跳过,不参与此次布局计算。包含块并非 Yoga 专属概念,在网页领域也存在该概念,但由于 Yoga 仅实现了网页浏览器功能的一个子集,其包含块的行为更为简化,因此有必要以不同的角度来阐释它。节点最终的内容尺寸应从节点的布局计算结果中读取,而非缓存测量函数的返回值。

2025-12-16 08:00:00 627

原创 Yoga Styling (1)

属性用于定义在交叉轴上的分布方式,该属性仅在通过flexWrap开启项目换行、形成多行布局时才会生效。

2025-12-16 08:00:00 1520

原创 关于 Yoga

Yoga是一个嵌入式布局系统,专注于弹性盒模型(Flexbox),主要用于确定UI元素的尺寸和位置。它支持部分CSS特性,可跨平台实现代码共享。采用C++编写并提供C接口,通过绑定层支持多种语言调用。Yoga不涉及绘制功能,而是作为底层布局引擎被ReactNative等UI框架集成使用。

2025-12-15 08:00:00 121

原创 Yoga入门

在历史版本中,Yoga 存在一些不符合行业标准的行为,这会导致其布局效果与网页浏览器中的样式布局产生差异。这些结果包括节点相对于其父节点边框盒的偏移量、自身尺寸,以及各物理方向上外边距(margin)、边框(border)和内边距(padding)的最终解析值。一份配置会绑定到特定的 Yoga 节点上,这使得 Yoga 节点树中不同部分在布局计算时能采用不同的行为规则。Java 环境下的 Yoga 节点树若要实现从右到左(RTL)的布局,可通过设置根节点的。整个 Yoga 节点树的布局会一次性完成计算。

2025-12-15 08:00:00 977

原创 FFmpeg Devices Documentation

本文档介绍由 libavdevice 库提供的输入和输出设备。

2025-12-13 08:00:00 1644

原创 FFmpeg Formats Documentation

本文档详细说明 libavformat 库提供的受支持格式(封装器和解封装器)。

2025-12-12 08:00:00 710

原创 FFmpeg Protocols Documentation

设置实时模式下单次发送函数调用传输的数据包最大声明大小,文件模式下默认不使用(设为 0),默认值为 -1(自动,通常为 MPEG-TS)。每个值前缀为单个字符表示类型:B(布尔值)、N(数字)、S(字符串)、O(对象)、Z(空值),后跟冒号。该协议提供大多数客户端功能和部分服务器功能,支持 RTMP、HTTP 隧道传输的 RTMP(RTMPT)、加密 RTMP(RTMPE)、SSL/TLS 上的 RTMP(RTMPS)以及这些加密类型的隧道变体(RTMPTE、RTMPTS)。

2025-12-12 08:00:00 771

原创 FFmpeg Codecs Documentation

本文档介绍了 libavcodec 库提供的编解码器(解码器和编码器)。

2025-12-11 08:00:00 1120

原创 FFmpeg Bitstream Filters Documentation

解包 DivX 风格的打包 B 帧。这种格式占用空间更大,可能导致轻微的音视频同步问题,解码时需要更多 CPU 资源(除非播放器有解码图像队列来补偿 2、0、2、0 的每包帧模式),且复制到 mp4 或 mpeg-ps/ts 等标准容器时可能出现问题 —— 因为 MPEG-4 解码器可能无法解码这些非标准格式。某些编码器允许长期头部(如 MPEG-2 序列头部、H.264/HEVC 的(VPS/)SPS/PPS)以 “带内”(即作为包含编码帧的比特流的一部分)或 “带外”(如在容器级别)方式传输。

2025-12-11 08:00:00 1014

原创 FFmpeg Scaler Documentation

FFmpeg 缩放器为 libswscale 库的图像转换工具提供了高层接口,尤其支持图像缩放和像素格式转换功能。设置当输入图像包含 Alpha 通道但输出图像不包含时使用的 Alpha 混合模式,默认值为。的方式设置,以下标注为 “仅 API 可用” 的选项除外。设置缩放器标志,同时用于指定缩放算法。仅可选择一种算法,默认值为。,表示源图像为全范围(full range);,表示源图像为有限范围(limited range)。设置源像素格式(必须以整数形式表示)。设置抖动算法,支持以下取值,默认值为。

2025-12-10 08:00:00 512

原创 FFmpeg Resampler Documentation

FFmpeg 重采样器为 libswresample 库的音频重采样工具提供了高层接口。具体而言,它支持执行音频重采样、音频声道布局矩阵重组,以及音频格式和封装布局转换。音频重采样器支持以下命名选项:可通过以下方式设置选项:在 FFmpeg 工具中指定。选项中显式设置值,或通过 libavutil/opt.h API 进行编程式调用。、在 aresample 滤镜中使用。

2025-12-10 08:00:00 1235

原创 Effect 与 neverthrow 对比

本文对比了TypeScript中neverthrow和Effect两个库的错误处理API。两者都采用容器模式封装成功/失败结果,提供相似的函数式操作如map、mapErr、unwrapOr等,但在实现方式和风格上存在差异:neverthrow采用实例方法调用(如result.map()),而Effect采用函数式管道风格(如pipe(Either.map()))。文章通过同步和异步场景的代码示例,详细展示了两个库在创建结果、转换值、处理错误、链式调用等方面的异同,特别指出Effect特有的pipe链式风格对

2025-12-09 08:00:00 567

原创 FFmpeg 工具文档

单个声道名称(如 ‘FL’、‘FR’ 等),可在 ‘@’ 后添加自定义名称(如 ‘FL@Left’、‘FR@Right’ 等)。标准声道布局名称(如 ‘mono’、‘stereo’ 等)。十进制数字 + ‘c’:表示该声道数对应的默认声道布局(参见函数,注意并非所有声道数都有默认布局)。十进制数字 + ‘C’:表示具有指定声道数的未知声道布局(注意并非所有声道布局指定字符串都支持未知声道布局)。

2025-12-09 08:00:00 997

原创 从 ZIO 迁移到 Effect

Effect框架采用服务联合类型表示环境依赖,与ZIO的交叉类型方式不同。这种设计移除了Has包装类型,利用TypeScript的结构类型特性避免冲突。当服务存在同名属性时,联合类型(A|B)不会像交叉类型那样简化为never,从而保持类型安全。Effect未提供预定义类型别名,而是显式使用Effect<A>表示类型,避免组合时的语义混淆。这种设计简化了类型系统,降低了认知负担。

2025-12-08 08:00:00 430

原创 Effect 与 Promise 对比

本文对比了TypeScript中Promise和Effect两种异步处理方案的差异。Effect采用惰性求值和多执行模式,支持结构化并发和类型安全的错误处理;而Promise采用饥饿式求值和单次执行模式,缺乏内置中断机制。在创建方式上,Effect通过succeed/fail方法明确区分成功/失败场景,并提供类似async/await的Effect.gen语法。并发处理方面,Effect通过all/raceAll等方法提供更精细的控制。核心区别在于Effect具有更好的类型安全性、错误管理和执行控制能力,适

2025-12-08 08:00:00 1026

原创 Effect 与 fp-ts 对比

fp-ts项目已正式并入Effect-TS生态系统,作者Giulio Canti加入Effect组织。Effect可视为fp-ts的升级版(v3),在保留原有功能基础上新增多项特性。两库对比显示,Effect在资源管理、并发控制、错误处理等方面优势明显,但初始包体积较大。Effect提供Micro模块作为轻量替代方案,适合对包体积敏感的场景。特性对比表详细展示了Effect在类型化服务、测试支持、日志追踪等18个维度的全面优势,特别适合需要高性能并发和复杂错误处理的场景。

2025-12-07 08:00:00 601

原创 关于 Effect 的常见误解

Effect框架常见误解解析:1. 性能方面,Effect的生成器API与async-await性能相当,仅在简单运算场景会有明显差异,其核心价值在于处理并发和错误等复杂问题;2. 包体积约25KB(gzip)且支持tree-shaking,实际使用可能减小总体积;3. 学习曲线虽陡但只需掌握10-20个核心函数即可上手;4. 与RxJS存在本质区别,Effect专注单发射效果和命令式编程,提供完整的类型安全控制流;5. 基于TypeScript实现能充分利用现有生态,其效果系统实现优于某些函数式语言。建议

2025-12-07 08:00:00 944

原创 Effect -- Platform (2)

摘要:Effect平台提供多个实用模块:1. Path模块支持路径操作(拼接、解析、规范化等);2. PlatformLogger可将日志写入文件,支持批量处理和多种格式;3. Runtime的runMain方法简化主程序执行,内置错误处理和退出码管理;4. Terminal模块实现终端交互功能,包括标准输入输出操作。示例包含路径拼接、文件日志记录、数字猜谜游戏等实用场景,展示如何利用这些模块构建可靠的Node.js应用。

2025-12-06 10:15:47 966

原创 Effect -- Platform (1)

Effect平台是一个跨平台开发库,支持Node.js、Deno、Bun和浏览器环境。它提供稳定的模块如文件系统(FileSystem)、终端交互(Terminal)、键值存储(KeyValueStore)等,以及实验性模块如HTTP客户端、服务器等。通过平台特定包(@effect/platform-node等)实现跨平台兼容性。主要功能包括:1) 跨平台路径处理;2) 命令行命令创建与执行;3) 文件系统操作;4) 类型安全的键值存储。该库采用Effect架构,支持错误处理和依赖注入,提供内存和文件系统两

2025-12-06 10:06:26 1062

原创 Effect -- Schema(5)

*输出:left: {*//*输出:left: {*/API 允许你从 Effect 的Schema生成一个标准模式 V1(Standard Schema v1)对象。可通过模式定义中的arbitrary注解,自定义任意数据的生成方式。})age: Age})/*示例输出:*/该注解允许访问 fast-check 库的完整导出(fc),可返回能精准生成目标数据类型的Arbitrary。

2025-12-04 08:00:00 692

原创 Effect -- AI

Model下面我们通过一个完整示例,演示如何定义、实现并使用一个从API 获取冷笑话的工具。首先,使用Tool.make构造函数定义语言模型可访问的工具。:工具的可选描述success:工具成功执行时返回的值类型failure:工具执行失败时返回的值类型parameters:调用工具时需传入的参数description: "从 ICanHazDadJoke API 获取一个搞笑的冷笑话",success: Schema.String, // 成功时返回字符串(即笑话内容)

2025-12-04 08:00:00 670

原创 Effect -- Micro

/ 定义一个继承自 Micro.Error 的自定义错误类// 抛出自定义错误(等价于 Micro.fail(new MyError(...)))" })})/*输出:"cause": {"error": {*/// 声明一个生成随机数的服务标签Random,>() {}// 使用服务//// ┌─── 类型:Micro<void, never, Random>// ▼// 获取 Random 服务实例// 从服务中获取随机数。

2025-12-04 08:00:00 1563

原创 Effect -- Schema(3)

本文介绍了模式转换(Schema Transformations)的核心概念及其应用。模式转换允许数据在不同类型间进行转换,如字符串转数字或日期对象转换。文章详细解析了Schema.transform和Schema.transformOrFail方法的使用场景:前者用于确定成功的转换,后者则处理可能失败的复杂转换。通过多个实例演示了基础类型转换、组合转换、数组转集合等操作,并探讨了异步转换、错误处理和依赖注入等高级用法。此外,还介绍了字符串、数字、布尔值等数据类型的特定转换方法,以及Schema注解系统用于

2025-12-03 08:00:00 870

原创 Effect -- Schema(4)

你可以使用message注解为架构的不同部分定义专门定制的自定义错误消息。这使开发人员能够提供更具上下文相关性的反馈,从而改进调试和验证过程。以下是| string| {返回类型描述string提供直接描述错误的静态消息。利用动态消息,这些消息可以整合同步过程的结果或依赖于可选依赖项。对象(包含message和override允许你定义特定的错误消息以及一个布尔标志(override该标志决定自定义消息是否应取代任何默认或嵌套的自定义消息,从而能精确控制向用户显示的错误输出。

2025-12-03 08:00:00 1338

原创 Effect -- Schema(6)

在使用 JSON Schema 时,某些数据类型(如bigint)没有直接对应的表示方式,因为 JSON Schema 本身不原生支持这些类型。这种缺失通常会导致生成 schema 时出现错误。要解决此问题,你可以通过自定义jsonSchema// 为 `bigint` 类型添加自定义 JSON Schema 注解type: "在 JSON Schema 中表示 bigint 的自定义方式"})})/*输出:],

2025-12-03 08:00:00 666

原创 Jinja Extensions(扩展)

Jinja扩展机制允许开发者通过添加过滤器、测试、全局变量等方式增强模板功能。扩展需在环境创建时通过extensions参数添加,或使用add_extension()方法动态加载。内置扩展如i18n支持国际化,提供trans标签并与gettext/Babel集成,可通过环境方法安装翻译函数。开发者可自定义扩展(需继承Extension类),通过操作AST节点实现新功能。文档详细说明了扩展API、节点类型及扩展示例(如缓存标签实现),同时介绍了新式gettext调用等高级特性。

2025-12-02 08:00:00 1537

原创 Effect -- Schema(2)

本文介绍了Effect Schema库中过滤器的使用方法和高级功能。过滤器允许开发者在基础类型检查之外添加自定义验证逻辑,通过Schema.filter函数声明,接收待验证schema和断言函数作为参数。文章详细讲解了过滤器的多种应用场景,包括字符串长度验证、密码匹配检查、多错误报告等,并介绍了如何添加元数据注解、指定错误路径等高级功能。此外,还涵盖了递归Schema定义、属性重命名、模式投影等高级用法,以及如何处理可选字段、默认值和标记类型等常见需求。文章通过大量代码示例展示了如何在实际项目中应用这些功能

2025-12-02 08:00:00 1106

原创 Effect -- Behaviours

TypeScript中的等价性与排序模块提供了灵活的值比较方案。等价性(Equivalence)定义了满足自反性、对称性和传递性的二元关系,支持自定义比较逻辑,如通过id比较对象。排序(Order)模块提供了比较器接口,支持字符串、数字等基础类型的比较,并能派生复杂对象的排序规则。两个模块都支持组合多个比较条件,并提供了实用函数如反转排序、范围检查和极值查找等功能。这些工具使得在TypeScript中实现精确的值比较和排序变得简单高效。

2025-12-01 08:00:00 886

原创 Effect -- Schema(1)

EffectSchema 是一个用于在 TypeScript 中定义和使用数据模式的模块,支持数据验证、转换和类型安全。它允许定义 Schema<Type,Encoded,Requirements> 来描述数据结构,并提供解码、编码、断言、测试数据生成等功能。文档详细介绍了如何定义各种数据类型(原始类型、字面量、联合类型、元组、数组、记录、结构体等),处理可选/必需属性,进行类型守卫和断言,以及自定义解析行为。该模块强调不可变性,支持 JSON 兼容性命名约定,并提供丰富的 API 来处理数据转

2025-12-01 08:00:00 1300

原创 Effect -- Data Types

摘要:本文详细介绍了Effect库中多个核心数据类型的功能与使用方法。主要内容包括: BigDecimal:高精度数值计算模块,解决JavaScript浮点数精度问题,支持金融等领域的精确运算。 Cause:错误处理机制,详细记录错误类型、调用栈和执行轨迹,支持顺序和并发错误的组合分析。 Chunk:高效不可变集合,优化了拼接操作性能,适用于函数式编程场景。 Data:简化数据结构创建,自动处理等值性和哈希计算,支持样例类、元组等类型定义。 DateTime:不可变日期时间处理,支持时区管理和精确算术运算,

2025-11-30 08:00:00 1045

原创 Effect -- Traits

Effect框架的Equal模块为TypeScript提供了基于值的相等性检查方案,解决了JavaScript原生引用比较的局限性。该模块支持自定义相等性逻辑实现,通过Equal接口可定义特定类型的比较规则,同时与Hash接口配合使用哈希优化比较效率。Data模块简化了值类型的相等性检查实现。Equal模块尤其适用于集合操作,通过HashSet和HashMap等数据结构确保基于内容的正确比较,避免了原生Set/Map的引用比较问题。这种机制不仅保证了数据完整性,还提升了集合操作的性能和可预测性。

2025-11-30 08:00:00 757

原创 Effect --Code Style

本文摘要介绍了Effect框架的核心概念和功能:1. 应用程序入口点:使用NodeRuntime.runMain实现优雅关闭,处理SIGINT信号并确保资源释放 2. 双重API设计:Effect.map等函数提供数据前置(data-first)和数据后置(data-last)两种调用方式 3. 标记类型(Branded Types):通过Brand模块创建类型安全的值,防止不同类型间的意外混用 4. 模式匹配:使用Match模块实现类型安全的模式匹配,支持when/not/tag等匹配器 5. 代码简化技

2025-11-29 10:35:45 755

原创 Effect -- TestClock(测试时钟)

摘要:Effect框架提供了TestClock工具,用于高效测试涉及时间操作的代码。TestClock允许手动控制时间流逝,避免真实等待,从而加快测试速度。通过TestClock.adjust方法可模拟时间推移,触发预定时间内的副作用执行。文章展示了测试超时、周期性任务和延迟对象等场景的示例,强调最佳实践是:创建纤程→调整时钟→验证结果。这种机制特别适用于需要精确控制时间的测试场景,能确保测试的可预测性和执行效率。

2025-11-29 10:17:22 452

原创 Effect-资源管理

摘要:本文详细介绍了Effect框架中的资源管理机制,重点讲解了如何安全获取、使用和释放资源。通过Effect.ensuring、Effect.onExit和Effect.onError等函数实现类似try/finally的功能,确保资源在各种执行结果下都能被正确释放。文章还深入探讨了作用域(Scope)的概念,展示如何通过Effect.acquireUseRelease和Effect.acquireRelease管理资源生命周期,包括自动释放和手动控制作用域关闭。最后通过一个工作区创建的示例,演示了如何实

2025-11-28 08:00:00 933

原创 Effect -- observability

Effect框架提供了强大的日志记录和指标监控功能,支持动态日志级别控制、自定义日志输出、细粒度日志控制以及基于环境的日志配置。其指标系统包含计数器、仪表盘、直方图、摘要和频率五种类型,适用于不同监控场景。通过追踪功能,可以跨服务跟踪请求生命周期,使用跨度记录操作详情。Effect还支持与Sentry等工具集成,并通过Supervisor管理纤程状态。这些特性共同构成了一个全面的可观测性解决方案,帮助开发者监控和优化分布式系统性能。

2025-11-28 08:00:00 1594

原创 Effect -- 批处理(Batching)

本文介绍了如何使用批处理(Batching)优化API调用,通过减少HTTP请求次数提升应用性能。主要内容包括: 基本API调用模型:定义了用户、待办事项等数据结构及获取数据的API函数 批处理实现方法: 将请求转换为结构化数据模型 配置批处理解析器(RequestResolver) 整合请求与解析器形成可执行查询 性能优化技巧: 支持批处理的API合并请求 请求缓存避免重复获取 并发执行提高效率 高级功能: 带上下文的解析器 自定义缓存配置 定时任务调度 该方法特别适用于数据交互频繁的应用场景,能显著减少

2025-11-28 08:00:00 1534

原创 Effect -- Caching

摘要:本文介绍了Effect库中的缓存管理功能,包括cachedFunction(函数记忆化)、once(单次执行)、cached(延迟缓存)和cachedWithTTL(带存活时间的缓存)等核心方法。通过示例代码展示了如何实现随机数记忆化、单次任务执行、耗时任务缓存等功能。文章还详细解析了Cache模块的特性,包括组合性、同步/异步统一处理、效果集成和指标跟踪,并演示了并发缓存查找的实现方式。缓存支持容量限制和TTL设置,提供refresh、invalidate等方法管理缓存生命周期,专为高并发场景设计,

2025-11-28 08:00:00 541

原创 Effect -- Concurrency

Effect框架提供了强大的并发控制工具,包括纤程(Fibers)、信号量(Semaphore)、队列(Queue)、发布-订阅(PubSub)和门闩(Latch)等核心组件。纤程作为轻量级虚拟线程,支持资源安全取消;信号量通过许可机制控制并发访问;队列提供背压感知的消息传递;PubSub实现消息广播;门闩则用于同步等待。框架支持四种并发策略:顺序执行、数值限制、无界并发和继承并发。中断机制采用异步模型,确保资源安全释放。这些工具协同工作,为构建高并发、资源安全的应用程序提供了完备的解决方案。

2025-11-28 08:00:00 538

嵌入式C开发人员最好笔试题

给各位正在找工作的码农们一套比较好的笔试题

2013-09-13

Programming Massively Parallel Processors

Programming Massively Parallel Processors

2024-04-17

现代计算机图形学入门-Games101课件

本课程将全面而系统地介绍现代计算机图形学的四大组成部分:(1)光栅化成像,(2)几何表示,(3)光的传播理论,以及(4)动画与模拟。每个方面都会从基础原理出发讲解到实际应用,并介绍前沿的理论研究。通过本课程,你可以学习到计算机图形学背后的数学和物理知识,并锻炼实际的编程能力。 顾名思义,作为入门,本课程会尽可能的覆盖图形学的方方面面,把每一部分的基本概念都尽可能说清楚,让大家对计算机图形学有一个完整的、自上而下的全局把握。全局的理解很重要,学完本课程后,你会了解到图形学不等于OpenGL,不等于光线追踪,而是一套生成整个虚拟世界的方法。从本课程的标题,大家还可以看到“现代”二字,也就是说,这门课所要给大家介绍的都是现代化的知识,也都是现代图形学工业界需要的图形学基础。 本课程与其它图形学教程还有一个重要的区别,那就是本课程不会讲授OpenGL,甚至不会提及这个概念。本课程所讲授的内容是图形学背后的原理,而不是如何使用一个特定的图形学API。在学习完这门课的时候,你一定有能力自己使用OpenGL写实时渲染的程序。另外,本课程并不涉及计算机视觉、图像视频处理、深度学习,也不会介绍游戏引

2024-04-16

WEBGL英文原版教程

目 录 第1章 WebGL简介 1 1.1 WebGL——一个技术定义 2 1.2 3D图形学——入门 4 1.2.1 3D坐标系 4 1.2.2 网格、多边形和顶点 5 1.2.3 材质、纹理和光源 5 1.2.4 变换与矩阵 6 1.2.5 相机、透视、视口和投影 6 1.2.6 着色器 7 1.3 WebGL原生API 8 1.3.1 WebGL应用结构剖析 9 1.3.2 画布元素与绘制上下文 9 1.3.3 视口 10 1.3.4 Buffer、ArrayBuffer和类型化数组 10 1.3.5 矩阵 11 1.3.6 着色器 12 1.3.7 绘制图元 13 1.4 本章小结 14 第2章 你的第一个WebGL程序 15 2.1 Three.js——一个JavaScript 3D引擎 15 2.2 建立Three.js运行环境 17 2.3 一个简单的Three.js网页 17 2.4 一个真实的3D示例 20 2.4.1 为场景着色 23 2.4.2 添加纹理映射 24 2.4.3 旋转物体 25 2.4.4 循环重绘和requestAnimationFrame() 25 2.4.5 让页面贴近生活 26 2.5 本章小结 27 第3章 图形 28 3.1 Sim.js——一个轻量级的WebGL模拟框架 29 3.2 创建网格 30 3.3 使用材质、纹理和光源 34 3.3.1 光源的种类 35 3.3.2 使用多重纹理创建更具真实感的场景 37 3.3.3 纹理与透明 42 3.4 构建变换层级 42 3.5 创建自定义几何体 46 3.6 点和线的渲染 49 3.6.1 使用粒子系统绘制点 50 3.6.2 线的绘制 52 3.7 编写着色器 53 3.7.1 WebGL着色器基础 53 3.7.2 Three.js中的着色器 55 3.8 本章小结 60 第4章 动画 61 4.1 动画基础 61 4.1.1 帧动画 61 4.1.2 时间动画 62 4.1.3 插值与补间动画 62 4.1.4 关键帧 63 4.1.5 关节动画 64 4.1.6 蒙皮动画 64 4.1.7 目标变形动画 64 4.2 使用Tween.js库来创建补间动画 65 4.2.1 创建一个基本的补间动画 66 4.2.2 带缓动效果的补间动画 68 4.3 为带关节的模型制作关键帧动画 71 4.3.1 载入模型 71 4.3.2 为模型制作动画 73 4.4 材质和光源动画 76 4.5 纹理动画 78 4.6 蒙皮动画和变形动画 80 4.7 本章小结 80 第5章 交互 81 5.1 点击检测、拾取和投影 81   Three.js中的点击检测 82 5.2 处理鼠标移入和点击 85 5.3 处理拖曳 88   在拖曳中使用补间动画 91 5.4 使用点击点和法线信息 91 5.5 基于相机的交互 92 5.5.1 利用镜头控制制作一个模型浏览器 93 5.5.2 场景漫游 95 5.6 本章小结 96 第6章 2D与3D的整合 98 6.1 整合动态HTML和WebGL 99 6.1.1 创建DIV元素弹出层 99 6.1.2 利用2D屏幕坐标为3D物体添加注释 103 6.1.3 为3D场景添加背景图片 104 6.2 在2D页面上插入3D浮层 105 6.3 利用2D Canvas创建动态纹理 107 6.4 使用视频作为纹理 115 6.5 渲染动态3D文字 119 6.6 WebGL中的终极整合 121 6.7 本章小结 123 第7章 实战WebGL 124 7.1 如何选择运行库和框架 124 7.2 载入3D内容 126 7.2.1 COLLADA:数字资产交换格式 126 7.2.2 Three.js中的JSON模型文件格式 130 7.2.3 Three.js二进制模型文件格式 134 7.2.4 压缩3D模型 135 7.2.5 Three.js中的JSON场景文件格式 136 7.3 创建3D内容 137 7.3.1 从Blender中导出3D内容 137 7.3.2 把OBJ文件转换为Three.js JSON文件 139 7.3.3 把OBJ文件转换为Three.js二进制文件 139 7.3.4 其他软件或格式的转换 139 7.4 浏览器支持度 140 7.4.1 检测浏览器的WebGL支持 141 7.4.2 在Safari中开启WebGL支持 142 7.5 处理丢失上下文事件 143 7.6 WebGL的安全性 146 7.7 本章小结 149 第8章 你的第一个WebGL游戏 150 8.1 构建游戏的各个部分 151 8.1.1 相机、角色和控制 152 8.1.2 美术设计 159 8.1.3 模型预览器 161 8.1.4 创建粒子系统 163 8.1.5 添加声音 166 8.2 万物归一 167 8.3 本章小结 180 后记 181 附录A WebGL在线资源 183

2013-08-23

winform 实现QQ截图功能

winform 实现QQ截图功能,可以通过鼠标选取,然后拖拉进行截图,功能很好用,有源码

2013-03-15

api_sdk_2008 SolidWorks

SolidWorks2008 API SDK 支持VC++6.0和VC++2005

2013-11-18

PaaS云计算系统仿真平台及其数据库子系统的设计与实现

随着云计算的发展,其可伸缩性、高可用性、易管理性以及低成本等优点逐 渐得到广泛的认可。PaaS(平台即服务)云计算系统成为一个重要的发展趋势。 然而应用在真实的PaaS云计算系统中直接进行部署或实验将带来较高的成本。 因此,需要构建PaaS云计算系统仿真平台,通过仿真分析,指导应用在真实PaaS 云计算系统中的部署,避免不必要的资源浪费。 本文首先分析了PaaS云计算系统的特点,提出了分层的PaaS云计算系统仿 真平台的系统架构。仿真平台采用分层结构及模块化设计,由仿真运算子系统和 仿真呈现子系统组成,具有良好的可扩展性,能够较好地模拟真实PaaS云计算 系统。然后本文分析了PaaS云计算系统仿真平台数据库子系统的功能和需求。 提出了数据库子系统的设计方案,既满足仿真平台现有的功能和需求,又具有良 好的可扩展性。数据库子系统对仿真运算子系统和仿真呈现子系统提供高效、简 单的接口。通过PaaS云计算系统仿真平台数据库子系统,仿真平台能够向用户 提供仿真数据和分析统计结果,为应用在真实PaaS云计算系统中的部署提供参 考依据。 Paas云计算系统仿真平台的前端部分采用javascriPt和PHP实现,数据库采 用MySQL实现,后端部分基于开源软件oMNct++实现。对PaaS云计算系统仿 真平台的测试表明,此平台不但可以较好的完成各项功能指标,而且具备良好的 运行效率和稳定性。 本文的成果能为应用在真实PaaS云计算系统中的部署提供参考依据。对云 计算系统的研究和发展有重要的实用价值。

2012-10-31

齿轮设计WebCAD系统中STEP标准的应用_孙磊

介绍齿轮设计的Web CAD系统的总体结构:描述系统主要模块的功能及设计原理,重点阐述产品模型数据交换标准(STEP)在系统图形数据交换模块中的功能实现形式。

2013-08-23

java中使用JNI调用vs2005

教你如何调用c++的教程,供大家学习参考

2011-07-22

node.js 手册中文版

入门教程,源代码稍后奉上,这本书还行,就是代码有些过时,仅供参考

2014-03-24

jquery-ui-1.9.0.custom.zip

jquery官方插件,该插件用于治国更富有表现力的网站,是jquery的扩展库

2012-10-31

jQuery即学即用

本代码为《jQuery即学即用》一书的代码 主要有: 第一部分:jquery基础知识 第二部分:jquery的基本应用 第三部分:jquery官方插件—jquery  UI 第四部分:比较流行的非jquery插件 第五部分:“糅合”的web服务,包括flickr  API和GOOLE地图

2012-10-31

opengl编程指南

总目录     第一章 OpenGL与三维图形世界  第二章 OpenGL概念建立 第三章 Windows NT环境下的OpenGL    第四章 OpenGL基本程序结构 第五章 OpenGL数据类型和函数名 第六章 OpenGL辅助库的基本使用  第七章 OpenGL建模   第八章 OpenGL变换  第九章 OpenGL颜色  第十章 OpenGL光照  第十一章 OpenGL位图和图像 第十二章 OpenGL纹理  第十三章 OpenGL复杂物体建模  第十四章 OpenGL特殊光处理 第十五章 OpenGL效果处理  第十六章 OpenGL显示列表 第十七章 OpenGL帧缓存和动画

2013-07-02

SQL版C#小型超市进销存销售管理系统

SQL版C#小型超市进销存销售管理系统,适合小型超市,仅供大家学习之用。

2013-07-02

基于CATIA_CAA的飞机结构虚拟装配信息模型研究_曹俊生

基于CATIA_CAA的飞机结构虚拟装配信息模型研究_曹俊生

2013-07-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除