babylon.js

ttod_qzstudio2 小时前
typescript·c#·重载·babylon.js
从Unity的C#到Babylon.js的typescript:“函数重载“变成“类型魔法“写给Unity开发者的Babylon.js入门指南作为一个从Unity转向Babylon.js的开发者,我第一次看到MirrorTexture构造函数时彻底懵了:
ttod_qzstudio6 天前
babylon.js
Babylon.js TransformNode.clone() 的隐形陷阱:当 null 不等于 null在最近的项目开发中,我意外发现了Babylon.js框架中一个容易被忽视的bug:TransformNode.clone() 方法的第二个参数 newParent 在传入 null 时,并不会如文档所述将克隆对象的父节点设为null。本文将详细剖析这个问题,提供临时的解决方案,并追踪官方修复进展。
ttod_qzstudio10 天前
babylon.js
备忘录之Babylon.js 子对象获取方法在Babylon.js中,TransformNode提供了三个常用方法来获取子对象,但它们的行为差异经常让人混淆。本文帮你理清核心区别。
ttod_qzstudio17 天前
babylon.js
深入理解 Babylon.js:TransformNode.setParent 与 parent 赋值的核心差异在 Babylon.js 的 3D 场景开发中,节点的父子层级关系是构建复杂模型、实现精准变换控制的基础。无论是让模型跟随父节点移动,还是拆分复杂模型的变换逻辑,都离不开父节点的设置。而在实际开发中,我们常用两种方式设置节点父级:TransformNode.setParent(parent) 方法与 TransformNode.parent = parent 直接赋值。
ttod_qzstudio1 个月前
babylon.js
Babylon.js中欧拉角与四元数转换的完整指南在3D图形编程中,旋转的表示和转换是一个常见但容易出错的领域。Babylon.js作为强大的WebGL框架,提供了多种方式来表示和处理3D旋转。本文将深入探讨欧拉角(Euler Angles)和四元数(Quaternions)在Babylon.js中的相互转换,提供最标准、最可靠的实践方法。
ttod_qzstudio2 个月前
babylon.js·cull
Babylon.js 双面渲染迷雾:backFaceCulling、cullBackFaces 与 doubleSided 的三角关系解析在 3D 渲染中,"看不见的面该不该画"是个看似简单却暗藏玄机的问题。Babylon.js 的 PBRMetallicRoughnessMaterial 提供了三个相关属性,却让不少开发者陷入"我改的是哪个?为什么没效果?"的困惑。今天,我们来彻底拆解这三者的爱恨情仇。
ttod_qzstudio2 个月前
babylon.js·pbr
Babylon.js中PBRMetallicRoughnessMaterial材质系统深度解析:从基础到工程实践在3D渲染领域,基于物理的渲染(PBR)已成为行业标准。Babylon.js作为WebGL领域的领先引擎,其PBRMetallicRoughnessMaterial不仅严格遵循glTF 2.0规范,更在易用性与性能之间取得了精妙平衡。本文将综合我们此前的多轮技术探讨,系统性地拆解Babylon.js的 PBRMetallicRoughnessMaterial材质的核心机制、环境光照体系以及工程化最佳实践。
ttod_qzstudio2 个月前
nexttick·babylon.js
Babylon.js材质冻结的“双刃剑“:性能优化与IBL环境冲突的深度解析在Web 3D渲染中,性能与正确性总是一对需要精细权衡的矛盾。Babylon.js提供的Material.freeze()方法能带来高达85%的CPU减负,但在动态环境切换场景下,却可能引发材质神秘消失的致命Bug。本文基于真实工程案例,深度剖析这一冲突的根源,并提供从方案对比到生产级重构的完整解决方案。
ttod_qzstudio2 个月前
babylon.js·arcrotatecamera
Babylon.js相机交互:从 ArcRotateCamera 输入禁用说起最近在使用 Babylon.js 开发 3D 材质编辑器时,遇到了一个看似简单却困扰不少开发者的问题:如何完全禁用 ArcRotateCamera 的滚轮缩放功能?
球球和皮皮2 个月前
javascript·3d·前端框架·babylon.js
Babylon.js学习之路《添加自定义摇杆控制相机》在 Babylon.js 中,经常需要使用摇杆来控制相机的移动。 比如移动端,类似王者荣耀控制英雄移动的摇杆。 经过对比,我发现一种非常简洁、高效的实现方式。
ttod_qzstudio6 个月前
babylon.js
Babylon.js 材质克隆与纹理共享:你可能遇到的问题及解决方案在 Babylon.js 中,材质(Material)和纹理(Texture)的克隆行为可能会影响渲染性能和内存管理,尤其是在多个材质共享同一纹理的情况下。本文将探讨:
ttod_qzstudio7 个月前
babylon.js
在Babylon.js中创建3D文字:简单而强大的方法在3D场景中添加文字是许多WebGL项目的常见需求。Babylon.js提供了多种创建3D文字的方法,其中使用TextBlock结合平面网格是一种简单而高效的方式。本文将介绍如何使用Babylon.js的GUI系统在3D空间中创建美观的文字效果。
球球和皮皮8 个月前
javascript·3d·前端框架·babylon.js
Babylon.js学习之路《七、用户交互:鼠标点击、拖拽与射线检测》Babylon.js 的 ActionManager: 通过事件管理器简化交互逻辑,支持点击、悬停、拖拽等事件。
球球和皮皮8 个月前
javascript·3d·前端框架·babylon.js
Babylon.js学习之路《四、Babylon.js 中的相机(Camera)与视角控制》
ttod_qzstudio8 个月前
babylon.js
在Babylon.js中实现完美截图:包含Canvas和HTML覆盖层在现代Web 3D应用开发中,Babylon.js作为强大的3D引擎被广泛应用。一个常见的需求是实现场景截图功能,特别是当场景中包含HTML覆盖层(如UI控件、菜单等)时。本文将深入探讨如何在Babylon.js中实现完整的截图方案。
ttod_qzstudio8 个月前
babylon.js
从StandardMaterial和PBRMaterial到PBRMetallicRoughnessMaterial:Babylon.js材质转换完全指南在现代3D图形开发中,基于物理的渲染(PBR)已成为行业标准。本文将深入探讨如何在Babylon.js中将传统StandardMaterial和PBRMaterial转换为PBRMetallicRoughnessMaterial,并保持视觉一致性。
ttod_qzstudio9 个月前
shader·babylon.js
基于Babylon.js的Shader入门之六:让Shader反射环境贴图顶点着色器中添加了两个varying变量,分别是vPositionW和vNormalW。它们是基于世界坐标的顶点位置和基于世界坐标的顶点法线,在顶点着色器中计算这两个值以备后面片元着色器中插值使用。计算这两个值使用了一下两行代码:
ttod_qzstudio1 年前
vue.js·typescript·babylon.js
使用Typescript开发Babylon.js的Vue3模板参考使用Composition API和<script setup>语法响应式canvas引用生命周期管理(onMounted/onUnmounted)
ttod_qzstudio1 年前
vue.js·typescript·babylon.js
基于Typescript,使用Vite构建融合Vue.js的Babylon.js开发环境使用Vite初始化一个Vue+TypeScript项目:npm create vite@latest my-babylon-app -- --template vue-ts 命令用于快速创建一个基于 Vite 的 Vue + TypeScript 项目。以下分三个部分解释以下这行命令的含义:
ttod_qzstudio1 年前
babylon.js
Babylon.js 中的 setHardwareScalingLevel和getHardwareScalingLevel:作用与配合修改内容在 Babylon.js 中,Engine类提供了setHardwareScalingLevel和getHardwareScalingLevel方法,用于管理和调整渲染分辨率与屏幕分辨率的比例。这些方法在优化性能和提升画质方面非常有用。尤其是在某些平台不支持硬件反锯齿时,可以考虑使用setHardwareScalingLevel的方法设定一个较小的值(比如0.5)来得到非常好的反锯齿效果。