OpenGL3.3鼠标拾取物体

本文翻译自:http://www.lighthouse3d.com/tutorials/opengl-selection-tutorial/

在3D场景中拾取或选择特定项目可能对某些应用程序很有用。可以通过单击一个对象来执行选择,这需要一种确定鼠标放置在哪个对象上的方法。

实现此目的的简单解决方案是使用颜色编码,以特定颜色绘制每个可拾取对象。读取鼠标所在的像素以提供颜色,从而可以识别物体。

选择模式下的渲染使用非常简单的着色器,将恒定的颜色应用于像素。颜色是一个统一变量,在绘制每个对象之前应将其设置为唯一值。

阅读全文 »

之前介绍了 go 的基本类型,接下来梳理一下 go 的复合类型。包括:数组、切片、map和结构体。

数组

在写 go 语言时很少会直接用数组,更多是用切片。

数组可以这样声明:

1
var x [3]int
阅读全文 »

这几天体会到了修bug和赶需求的痛苦🥱

继续整理 go 的语法。

变量和常量的命名规则

go 要求标识符名称以字母或下划线开头,名称中可以包含数字、下划线及字母。go 对字母和数字的定义比其他语言要宽泛。

下面这些命名在 go 中都是合法的!但是不建议这样写😂

阅读全文 »

今天是情人节,愿天下有情人终成眷属👩‍❤️‍👨。

继续学习 go 吧😜,我写的这几篇 go 学习笔记不适合初学 go 的同学,因为都是在关注语言的细节。

我相当于是在大体明白了 go 怎么用怎么写后回过头来看当初忽略的那些细节。初学 go 的话还是建议看官方的 tutorial:https://go.dev/doc/tutorial/getting-started

string、rune

string 是 go 的内置类型,它的零值就是一个空字符串,string 是不可变的。go 支持 Unicode

阅读全文 »

因为工作中会用到一些嵌入式linux相关的知识,所以开始学一学。

Yocto 是 Linux基金会旗下的用于构建针对嵌入式设备Linux的一整套工具。

也就是通过 Yocto 我们可以创建自已的linux系统给自己的嵌入式设备使用,可以定制裁剪所需要的模块,可以把自己写的应用打包进去。

假如我想开发一个智能硬件设备,我就可以事先根据设备的硬件信息构建一个linux系统。这样在开发的时候就不用太考虑对硬件的底层操作了,可以像开发普通的linux程序那样开发了。

今天这篇讲一下 Yocto 的 hello world ,从头构建一个可以在qemu虚拟机里跑的 linux 系统。

阅读全文 »

在js中如果只是发起单个网络请求还不算复杂,用fetch、axios或者直接用XMLHttpRequest就能满足要求。

但若是多个请求按顺序拉取数据那写起来就很麻烦了😂,因为js中的网络请求都是异步的,想要顺序执行最常见写法就是在回调函数中发起下一个请求,如下面这些代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const requestOptions = {
method: 'GET',
redirect: 'follow'
};

fetch('https://xxx.yyy.com/api/zzz/', requestOptions)
.then(response => response.json())
.then(data => {
fetch('https://xxx.yyy.com/api/aaa/'+data.id, requestOptions)
.then(response => response.json())
.then(data => {
console.log(data)
})
.catch(error => console.error('error', error));
})
.catch(error => console.error('error', error));

假设我需要经过两步获取一个数据,如从https://xxx.yyy.com/api/zzz/获取一个数据对象data,通过data.id得到我要获取数据的序号,之后再发一次请求得到想要的数据。

用回调函数的方式就类似于上面这样,太繁琐了,而且容易出错,并且一旦逻辑复杂就不好改啦😭。

阅读全文 »

今天周五了,大家周末快乐呀😊!春节那几天没事情做,尝试了下光追挑战
《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

阅读全文 »

今天接了出春招机试题的任务,要求是出简单题,我在网上找了几道题改了改,最后评审的时候发现我出的这几道题稍有些难😂。采纳了一道。

说来也怪,出题的时候看这道也觉得简单,看那道也觉得简单。内心os反正参加机试的肯定都刷过题,出这个是不是太简单了😂。

书接上回,昨天整理了一下go的字面量,今天来梳理一下go的基本类型中的布尔和数值类型。

布尔(Booleans)类型

bool类型没什么好说的,它只有两个值truefalse,它的零值为false

阅读全文 »
0%