【Web2D/3D】WebGL和ThreeJS自学资料推荐

1. 前言

        随着Web引入OpenGL(WebGL),拓展了Web在可视化领域运用,尤其是促进3D领域的技术在Web前端的发展。而ThreeJS是基于WebGL做的上层封装,为开发者屏蔽空间几何的计算细节。当然为了学好WebGL/ThreeJS,计算机图形学以及空间几何还是需要恶补一下。

        本篇暂未开始写学习笔记,先为大家推荐一些入门资料。

2. 入门资料
2.1 WebGL资料
  • 《WebGL编程指南:基于WebGL的交互式图形编程》
  • 《交互式计算机图形学:基于WebGL的自顶向下方法_第七版》
  • W3Cschool的“WebGL 中文版-w3cschool”
2.2 ThreeJS资料
  • Three.js中文网 (webgl3d.cn)
  • Three.js – JavaScript 3D Library (threejs.org)
3. 结尾

        不建议刚入门前端开发的同学就学WebGL/ThreeJS,Web前端本身已经有庞大的知识体系:HTML、HTML5(canvas2D、svg)、CSS、CSS3(变换、过滤、动画)、JavaScript(ES5, ES6)、DOM API、BOM API、TypeScript、React、Vue、Antd、Element Plus、NodeJS、Webpack(loaders和plugins)、Vite、Babel、PostCSS、npm、yarn、pm2等等,建议先打牢基础,再往外拓展,如WebAssembly、WebGL。有了WebAssembly,Web应用的开发语言可以拓展到C/C++、Rust、Go、Swift、Ruby,既而可以拓展到视音频解码、3D渲染、3D建模等等。

        换句话说,如果实际项目未涉及3D相关的,可以延后学习WebGL/ThreeJS。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/806872.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 查询实战1-题目

学习了mysql 查询实战-变量方式-解答-CSDN博客,接着练习sql,从实战中多练习。 1,题目: 1,查询部门工资最高的员工 1,建表: DROP TABLE IF EXISTS department; create table department(dept_i…

【精选】发布应用到应用商店的基本介绍

摘要 本文旨在介绍如何在各大应用商店发布应用,包括市场选择、准备材料、上架步骤以及常见被拒原因及解决方法。通过详细的步骤和经验分享,帮助开发者顺利将应用推向市场。 引言 随着移动应用市场的不断发展,越来越多的开发者希望将他们的…

2024年能源环境、材料科学与人工智能国际会议(ICEEMSAI2024)

2024年能源环境、材料科学与人工智能国际会议(ICEEMSAI2024) 会议简介 2024国际能源环境、材料科学和人工智能大会(ICEEMSAI 2024)主要围绕能源环境、物质科学和人工智慧等研究领域,旨在吸引能源环境、先进材料和人工智能专家学者、科技人员…

sgg大数据全套技术链接[plus]

写在开头:感谢尚硅谷,尚硅谷万岁,我爱尚硅谷 111个技术栈43个项目,兄弟们,冲! 最近小米又又又火了一把,致敬所有造福人民的企业和伟大的企业家,致敬雷军,小米&#xff…

跨域问题一文解决

📝个人主页:五敷有你 🔥系列专栏:Vue ⛺️稳中求进,晒太阳 一、为什么会出现跨域的问题? 是浏览器的同源策略,跨域也是因为浏览器这个机制引起的,这个机制的存在还是在于安全…

C语言指针易混问题

1. 在此函数传参过程中,虽然p是指针,但此处传递等价于值传递而非地址传递,所以函数中对变量的改变不改变主函数中原有变量的值 2. 能修改的是变量,但常量不能被修改,否则会出现段错误,下图为错误示范

机器学习中的激活函数

激活函数存在的意义: 激活函数决定了某个神经元是否被激活,当这个神经元接收到的信息是有用或无用的时候,激活函数决定了对这个神经元接收到的信息是留下还是抛弃。如果不加激活函数,神经元仅仅做线性变换,那么该神经网…

产品经理应具备哪些素质呢?

目录 简介 产品经理素质 CSDN学院 作者简介 简介 刚毕业想做产品经理,或者想转行产品经理,该怎么入手呢? 很多人对产品经理有这样一个认知:就是空有一个经理的头衔,却没有任何实质的权利。 其实这是有误区的&am…

AI是什么?

介绍AI AI是一个韵母的发音,发音汉字有爱、哎、唉、艾、😔、埃、矮、挨等。 没了 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 真没了 . . . . . . . . . . . . . . . . . …

日程安排组件DHTMLX Scheduler v7.0新版亮点 - 拥有多种全新的主题

DHTMLX Scheduler是一个类似于Google日历的JavaScript日程安排控件,日历事件通过Ajax动态加载,支持通过拖放功能调整事件日期和时间,事件可以按天、周、月三个种视图显示。 备受关注的DHTMLX Scheduler 7.0版本日前正式发布了,如…

资深大佬养成之路:Java中关于List集合选择与使用(二)

本系列文章简介: 作为一个Java程序员,我们经常会遇到需要处理大量数据的情况。而在处理数据时,我们常常需要使用到集合这种数据结构。而在集合中,List是最常用的一种。 List是一种有序的集合,它可以存储任意类型的对象…

基于react native的原生iOS 微信登录

基于react native的原生iOS 微信登录 引入SDK:WechatOpenSDK-XCFramework.xcframeworkios 创建CustomerWxLogin类CustomerWxLogin.hCustomerWxLogin.m react native端调用创建wxLogin.js用于架起桥梁连接ios原生代码在页面中使用 微信open SDK 引入SDK:W…

Flutter 与Android 原生通信的3种基本方式的使用

一、Flutter 与 原生通信的三种基本方式以及使用场景 1.MethodChannel 主要是用于Flutter调用原生的方法(执行一个原生的行为更合适) 2.BasicMessageChannel 用于Flutter Native双向流式通信 3.EventChannel 主要用于Native平台单独向Flutter发送事件消息流,更强调单向用…

小程序项目思路分享爬虫

小程序项目思路分享爬虫 具体需求: 有这几个就行,门店名称门店地址门店类型,再加上省、市、县/区门店名称:storeName 门店地址:storeAddress 程序运行: honor_spider获取经纬度信息。 经纬度——>详…

「PHP系列」PHP 命名空间详解

文章目录 一、PHP命名空间1. 声明命名空间2. 使用命名空间3. 命名空间的作用范围4. 子命名空间5. 全局命名空间和非命名空间代码6. 命名空间与自动加载 二、PHP命名空间使用1. 基本使用2. 子命名空间3. 全局函数和常量4. 结合自动加载 三、相关链接 一、PHP命名空间 PHP 的命名…

Ubuntu配置VScode的C++环境

在Ubuntu系统下配置C环境,并运行helloworld 1. 下载VScode 我这里使用的是星火应用商店,在商店里面可以直接下载安装 http://spark-app.store/ 2.创建文件夹 3.启动VScode并打开该文件夹 4.安装以下几个扩展 PS:Clang这个插件别安装&…

【电路笔记】-逻辑或非门

逻辑或非门 文章目录 逻辑或非门1、概述2、晶体管逻辑或非门3、数字逻辑或非门类型4、通用或非门逻辑或非门是数字逻辑或门与反相器或非门串联的组合。 1、概述 或非(Not-OR)门的输出通常为逻辑电平“1”,并且仅当其任何输入处于逻辑电平“1”时才变为“低”至逻辑电平“0”…

OpenHarmony应用开发引入开源C/C++库---之Har包里的NDK

Har 包 HAR(Harmony Archive)是静态共享包,可以包含代码、C 库、资源和配置文件。通过 HAR 可以实现多个模块或多个工程共享 ArkUI 组件、资源等相关代码。HAR 不同于 HAP,不能独立安装运行在设备上,只能作为应用模块…

力扣HOT100 - 73. 矩阵置零

解题思路: 题目要求使用原地算法 在原地算法中,输入数据通常在内存中直接被修改,而不需要额外的辅助数据结构来存储中间结果。原地算法的一个常见应用是在数组或列表上进行操作,而不是创建新的数组或列表来存储结果。 class So…

bash的login shell与non-login shell,以及各自的初始化过程

识别login shell与non-login shell login shell 可能是以-开头的 [almalinuxVM-AlmaLinux8-tmpl-wanlinwang ~]$ echo $0 -bash # "-" is the first character. Therefore, this is a login shell.或者以--login启动的bash [almalinuxVM-AlmaLinux8-tmpl-wanlinw…