Three学习笔记(1)

1.Three三大基本元素:

scene:场景

camera:相机

renderer:渲染器

新建html文件:

<!DOCTYPE html>
<html>
	<head>
		<meta charset=utf-8>
		<title>My first three.js app</title>
		<style>
			body { margin: 0; }
			canvas { width: 100%; height: 100% }
		</style>
	</head>
	<body>
		<script src="js/three.js"></script>
		<script>
			// Our Javascript will go here.
		</script>
	</body>
</html>

基本js代码:

var scene = new THREE.Scene();//设置场景
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );//设置相机

var renderer = new THREE.WebGLRenderer();//设置渲染器
renderer.setSize( window.innerWidth, window.innerHeight );//设置大小
document.body.appendChild( renderer.domElement );//将渲染器元素添加到dom中


创建几何体:

1.几何体

2.材质

二.三大基本元素讲解

1.scene 保存所有物体、光源、摄像机以及渲染所需的其他对象,继承自Three.object3D的对象

属性:

方法描述
add(object)用于向场景中添加对象。使用该方法还可以创建对象组。
children 用于返回一个场景中所有对象的列表,包括摄像机和光源
getObjectByName(name,recursive)在创建对象时可以指定唯一的标识 name,使用该方法可以查找特定名字的对象。
  • 当参数 recursive 设置为 false 时,在调用者子元素上查找
  • 当参数 recursive 设置为 true 时,在调用者的所有后代对象上查找
 remove(object)object 为场景中对象的引用,使用该方法可以将对象从场景中移除
 traverse(function) 该方法也可以遍历调用者和调用者的所有后代,function 参数是一个函数,被调用者和每一个后代对象调用 function 方法。
 fog使用该属性可以为场景添加雾化效果,可以产生隐藏远处物体的浓雾效果。
overrideMaterial使用该属性可以强制场景中的所有物体使用相同的材质。

2.camera

  分为正交相机和透视相机,正交投影理解为到面的投影,投影线垂直于投影面进行投影,因此物体投影之后的比例是保持不变的。而对于透   视 投影我们可以理解为到点的投影,所有的投影线最后都将汇聚于一点,透视投影的特点就是近大远小。

如图;



a>OrthographicCamera( leftrighttopbottomnearfar )

left就是视锥左侧面,

right就是视锥右侧面,

top就是视锥上侧面,

而bottom就是视锥下侧面。 

near是到距离相机较近的那一面的距离,

far是离距离相机较远的那一面的距离,这六个投影面围成的区域就是相机投影的可见区域。 

b>PerspectiveCamera( fov, aspect, near, far )

        fov:角度

       aspect:

       near:最近距离

       far:最远距离

属性:

position:设置相机位置

lookAt()看向某个位置;例如:lookAt({x:0,y:0,z:0})


up,指向上的方向为某个轴(设置为1,则为向上方向)camera.up.x=1

3.three.js渲染器分支:

renderers:
a.CanvasRenderer
b.DOMRenderer
c.SVGRenderer
d.WebGLRenderer
e.WebGLRenderTarget
f.WebGLRenderTargetCube
g.WebGLShaders
我们把canvasRenderer和webglRenderer进行比较
区别:
1.调用方式不同:
canvasRenderer:renderer=new THREE.CanvasRenderer();
WebGLRenderer:renderer=new THREE.WebGLRenderer();
2.效果图对比:
WebGL在渲染效果上更胜一筹,WebGL的渲染能够最大程度表现你制作精美的场景
CanvasRenderer拥有更好的兼容性

4.灯光

有四种常见灯光:1》环境光(AmbientLight)笼罩在整个空间无处不在的光

2》点光源(PointLight)3》聚光灯(SpotLight)4》平行光(DirectinalLight

还有半球光光源( HemisphereLight ),平面光光源( AreaLight )

相对于能产生阴影:平行光>聚光灯>点光源

<think>好的,用户想查找关于“RT three”的学习资料或笔记。首先需要确认用户是否指的是“RT-Thread”,因为“RT three”可能是一个拼写错误或者简称。RT-Thread是一个广泛使用的开源实时操作系统,常见于嵌入式开发领域。用户提供的引用中提到了RT-Thread官方手册的rt_event_send函数,这进一步支持了用户可能是在寻找RT-Thread的资料。 接下来,我需要查看用户提供的引用内容。引用[1]提到了RT-Thread的官方手册,引用[2]和[3]涉及学习笔记和应用场景,引用[4]是关于Shell脚本的例子,可能与当前问题无关。因此,重点应放在引用[1]、[2]、[3]上,尤其是官方文档和笔记部分。 用户可能需要官方文档链接、教程和社区资源,以及学习笔记和实际应用案例。需要确保回答结构清晰,分点列出,并附上引用来源。同时,生成的相关问题需要围绕如何开始学习、社区资源、书籍推荐以及常见应用场景展开。 需要验证提供的链接是否有效,但根据现有信息,RT-Thread的官方网站和社区是标准资源。此外,引用[3]中提到的案例思路,如排序和排行榜应用,可能帮助用户理解RT-Thread的实际使用场景。 最后,确保回答使用中文,格式正确,数学表达式用$...$,独立公式用$$...$$,但当前问题不涉及数学公式,所以可能不需要。但需检查是否有遗漏。确认后组织回答内容,引用正确的来源,并生成相关问题。</think>关于RT-Thread(常被简称为RTT)的学习资料,以下是结构化整理: ### 一、官方核心资源 1. **官方文档** RT-Thread提供[完全开源的在线手册](https://www.rt-thread.org/document/site/),涵盖内核原理、设备驱动开发、物联网组件等核心技术模块。例如事件控制块API`rt_event_send()`的详细说明可见内核编程指南章节[^1]。 2. **Github代码仓库** 主仓库地址:https://github.com/RT-Thread/rt-thread 包含内核源码、BSP支持包及组件库,推荐通过阅读`src/ipc/event.c`源码理解事件机制实现。 ### 二、学习路径建议 1. **入门教程** - 《RT-Thread编程指南》电子书(官网可下载) - 官方B站账号的[零基础入门视频系列](https://space.bilibili.com/39937244/channel/series) - 通过`env`工具快速创建工程模板: ```bash menuconfig --配置内核选项 scons --生成MDK/IAR工程 ``` 2. **知识图谱** ```mermaid graph LR A[内核机制] --> B[线程调度] A --> C[IPC通信] C --> D[信号量/互斥量] C --> E[事件集] E -->|参考| F[rt_event_send()应用] ``` ### 三、开发实战工具链 1. **调试工具集** - `rtt-studio`集成开发环境(支持可视化配置) - `FinSH`命令行组件实现运行时系统诊断 - `ulog`日志模块支持多级别过滤 ### 四、典型应用案例 如引用[3]提到的**排行榜应用**,可通过RT-Thread的优先队列实现: ```c struct toplist { int score; rt_slist_t node; }; // 使用rtt的排序算法库进行TopN计算 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值