OpenGL3.3鼠标拾取物体
OpenGL3.3鼠标拾取物体
本文翻译自:http://www.lighthouse3d.com/tutorials/opengl-selection-tutorial/
在3D场景中拾取或选择特定项目可能对某些应用程序很有用。可以通过单击一个对象来执行选择,这需要一种确定鼠标放置在哪个对象上的方法。
实现此目的的简单解决方案是使用颜色编码,以特定颜色绘制每个可拾取对象。读取鼠标所在的像素以提供颜色,从而可以识别物体。
选择模式下的渲染使用非常简单的着色器,将恒定的颜色应用于像素。颜色是一个统一变量,在绘制每个对象之前应将其设置为唯一值。
go学习笔记(7)复合类型(1)
之前介绍了 go 的基本类型,接下来梳理一下 go 的复合类型。包括:数组、切片、map和结构体。
数组
在写 go 语言时很少会直接用数组,更多是用切片。
数组可以这样声明:
1 | var x [3]int |
go学习笔记(6)基本类型和声明(5)
这几天体会到了修bug和赶需求的痛苦🥱
继续整理 go 的语法。
变量和常量的命名规则
go 要求标识符名称以字母或下划线开头,名称中可以包含数字、下划线及字母。go 对字母和数字的定义比其他语言要宽泛。
下面这些命名在 go 中都是合法的!但是不建议这样写😂
go学习笔记(5)基本类型和声明(4)
go学习笔记(4)基本类型和声明(3)
今天是情人节,愿天下有情人终成眷属👩❤️👨。
继续学习 go 吧😜,我写的这几篇 go 学习笔记不适合初学 go 的同学,因为都是在关注语言的细节。
我相当于是在大体明白了 go 怎么用怎么写后回过头来看当初忽略的那些细节。初学 go 的话还是建议看官方的 tutorial:https://go.dev/doc/tutorial/getting-started
string、rune
string
是 go 的内置类型,它的零值就是一个空字符串,string
是不可变的。go 支持 Unicode
。
Yocto初体验——从头构建一个linux镜像
因为工作中会用到一些嵌入式linux相关的知识,所以开始学一学。
Yocto 是 Linux基金会旗下的用于构建针对嵌入式设备Linux的一整套工具。
也就是通过 Yocto 我们可以创建自已的linux系统给自己的嵌入式设备使用,可以定制裁剪所需要的模块,可以把自己写的应用打包进去。
假如我想开发一个智能硬件设备,我就可以事先根据设备的硬件信息构建一个linux系统。这样在开发的时候就不用太考虑对硬件的底层操作了,可以像开发普通的linux程序那样开发了。
今天这篇讲一下 Yocto 的 hello world ,从头构建一个可以在qemu虚拟机里跑的 linux 系统。
js几种网络请求方式梳理——摆脱回调地狱
在js中如果只是发起单个网络请求还不算复杂,用fetch、axios或者直接用XMLHttpRequest就能满足要求。
但若是多个请求按顺序拉取数据那写起来就很麻烦了😂,因为js中的网络请求都是异步的,想要顺序执行最常见写法就是在回调函数中发起下一个请求,如下面这些代码:
1 | const requestOptions = { |
假设我需要经过两步获取一个数据,如从https://xxx.yyy.com/api/zzz/
获取一个数据对象data
,通过data.id
得到我要获取数据的序号,之后再发一次请求得到想要的数据。
用回调函数的方式就类似于上面这样,太繁琐了,而且容易出错,并且一旦逻辑复杂就不好改啦😭。
TinyRayTracer 用256行纯C++代码构建一个可理解的光线追踪器
今天周五了,大家周末快乐呀😊!春节那几天没事情做,尝试了下光追挑战
《The Ray Tracer Challenge》,就是下面这本书👇
这本书一共有17章,全部做完可以实现一个基于构造实体几何( Constructive solid geometry, CSG)的光追渲染引擎。春节期间我做了前六章,代码在此: https://github.com/hejiangda/go-raytracer-challenge
完全实现这本书要花很长时间了,今天分享一篇我三年前翻译的一个
实现光追引擎的教程,只需250多行代码就能实现一个光追引擎了!很有意思😁
本文翻译自:https://github.com/ssloy/tinyraytracer/wiki/Part-1:-understandable-raytracing
go学习笔记(3)基本类型和声明(2)
今天接了出春招机试题的任务,要求是出简单题,我在网上找了几道题改了改,最后评审的时候发现我出的这几道题稍有些难😂。采纳了一道。
说来也怪,出题的时候看这道也觉得简单,看那道也觉得简单。内心os反正参加机试的肯定都刷过题,出这个是不是太简单了😂。
书接上回,昨天整理了一下go的字面量,今天来梳理一下go的基本类型中的布尔和数值类型。
布尔(Booleans)类型
bool
类型没什么好说的,它只有两个值true
和false
,它的零值为false
。