0%

3/27日完成的,对各方面的把控已经开始变得熟练了起来。起名叫Under the sky并且扔到了ArtStation上。

Under the sky

快速起稿练习,主要目的是型准,大概两小时左右完成。图中模特是:Rachel Weisz
起稿练习

17号的情绪失落严重,对自我的怀疑和批判达到了顶峰,无法正视自己做的任何一件事情,觉得做什么都是错的。晚上只睡了4个小时,失眠,下午又补了2个小时睡眠。也许是因为最近想要把项目快点做完而感受到了压力。

换回了静电容键盘,红轴坏了两个轴,有空再修吧,红轴键盘打滑严重,经常按错键,静电容好多了。

今天Github居然也宕机,估计花了1小时左右才恢复。网络上也到处在说Github今天各方面的功能失常,不知道是不是和俄乌战争有关,希望战争快些结束吧,也希望疫情也快点过去。

直到18日凌晨,感觉好了一些。我喜欢机械硬盘运行时发出的沙沙声,似乎一切都在控制之中。

天气开始热了起来,感觉思维开始有些疲倦,今天一大早就在弄着项目的编译。不得不说,C++真的是个太复杂的编程语言,若不同的人,不同的风格加到同一项目里,真是会出现各种问题。Chia官方写C++的那些人的水平也真是一言难尽,一直在用各种方式给他们的Project打补丁,虽然最终是解决了所有的编译问题,但是过程的确是艰辛。

放一张周日的素描练习,这张其实要画的地方并不多,比较容易出效果。老师对于我的画里五官部分基本上满意的,但是手一开始画得很糟糕,然后专门花时间修改了手部的光影。未来会花更多的时间在起稿上,越来越觉得如果能在一开始把线稿准确绘制出来会在后期省掉很多不必要的修改。

周日素描练习

起因

2月28日真是特别的日子,约好了医院挂号去检查一下皮肤和配眼镜,车子扔在地下车库结果取车的时候发现被剐蹭,对方逃逸没有留下任何的联系方式。

被撞到的地方

处理步骤

发现被剐蹭后,找到了医院的保安,寻问处理方式。保安带我到监控室让我自己找相关的监控录像。终于在花了一个多小时的时间筛选录像找到并确认了对方的车牌。肇事车是在拐弯的时候用侧面撞到了我的车,发现无法继续行驶后,倒车然后离开。于是我打电话联系交警。交警让我第二天一早到交警支队报案。

第二天是周一,早上十点我到了交警支队报案,早上没拿驾驶执照,但是先给我登记了案件的情况,然后下午等到他们上班又把驾驶执照带了过去。先填写报案的资料,然后交警支队给我的汽车做了定损并且拍了相关的照片。受理的警察态度还是可以的,处理完所有的事情后让我回家等消息。

按理说已经有车牌的情况下,很容易能查到对方的电话号码,但是一周过去了仍然没有任何的消息。于是我在周五打电话寻问结果,得到的答复仍然是等待。直到下一周的周一我又打电话到交警支队问情况,得到的答复仍然是一样。但是当天临近中午的时候,授理的警官打了电话给我,让我下午三点上班的时候到交警支队处理案件,说是已经联系到了肇事车主。

下午三点按时到了交警支队,因为要处理的案件比较多,所以又等待了大概半小时的时间。见到了对方肇事的车主,他否认当时知道剐蹭这件事情,因为一旦承认了,就表示其的行为是逃逸。但同时我也表明在录像中所表现的并不是他所声称的那样。而交警只是想快速的把案子结了,不希望我扯出太多事情。最终,肇事车主除了赔给我一千一的修理费用(由交警定损)外还支付给交警305的定损费用。

一些总结

从始至终我都没有让保险公司介入,我觉得有交警在的话,应该在需要走保险的情况下他们会告诉我,于是没有多想。但是,其实最好的办法就是,在发生的第一时间打电话给保险公司,他们会指导你怎么做。最重要的是,如果没有找到肇事车辆或车主,那么保险公司因为从一开始就介入了整件事情,会让其比较容易进入理赔流程。像我这次的处理若没有找到肇事车辆,那么再找保险就会麻烦一些,因为需要证明对方逃逸并且自己没有造假。而且,找了保险公司后,除了取证外其它的事情应该都不需要再亲力亲为,对保险公司来说,是利益相关。

发生这样的事情如果不追责,让肇事车主逃逸无惩罚,对整个大的社会环境来说是一种伤害,并且自己心里也会很不舒服。如果追责,则会浪费很多的时间和精力,并且这些时间和精力并没有产生正面的价值。发生这样的事情后,只有在追责的过程中尽量减少不必要的时间浪费,在第一时间找到保险公司然后报警处理是最好的办法。

今天花了几个小时的时间研究了Hexo,把原Wordpress的数据进行了迁移并重新配置了网站以及对服务器进行了升级和优化。

最近报了一个素描班,学习人像素描。主要想知道素描的基本步骤以及希望该技能在未来能够支持游戏开发。老师是中央美院毕业的,很有耐心,会认真讲解交上去的每一幅画。

一些心得

素描最基础的要求是准确度,而准确度是要依靠长时间的练习来提升的。它要求人把一个3D对象投身到2D纸面上,相当于建模中,计算机根据该模型的3D的描述,计算并绘制出某个观察视角下该模型在2D平面上的影像。我在没有学习素描之前认为这是一件非常难的事情。这也是我计划要去制作游戏里的元素时,为什么会考虑使用3D建模的方式。

但是,在学习了素描之后,发现我忽略了一件很重要的事情,那就是:人对于投射在2D平面上3D对象的鉴别能力是与生俱来的。就是说,虽然你无法在一开始就能准确绘制出那些能够表示3D对象的2D图形,但是你却可以很容易发现这些图像里“哪里不对”。

这其实让我理解到,其实素描并没有我想像中的那么难。需要学习的就是透视和光影在2D平面上表现的基本规律,以及不断提升自己对于所见物理在2D平面的理解力。

好的素描

我一直都认为,只有深入了解事物后,才能得出比较客观的针对该事物的相关看法。在学习素描过程中一直思考,一幅好的素描应该是什么样子的。

一幅好的素描,可能要满足以下几点(按照重要程度排序):

  • 是否准确。所绘制出来的物体并不是仅仅指画本身是否让人脑看不出有什么问题,而是它必需能准确的表示被绘制的物体。我就犯这样的错误,花大量的时间去修正画里让人脑觉得不对的点,但是却不花精力去思考画中的物体与被画物体的差异。

  • 笔触是否干练。这是一个概括能力的体现。当你在做每一步都清楚的知道这一步要达成的目的和明确的知道如何去做的时候,你可以减少完成一幅画所需要的时间,同时会做到每一笔都是有用的。于是,画面修改会非常的少,而光影的表达会准确但是不刻意。

  • 意境表达。是否能够在画中看到你所想表达的情绪。这其实是我最在意的一点,但是却是在基础素描中最不重要的一点。我希望我不仅仅是一台“相机”,希望一幅画能够具有比照片更强的感染力。但是我很清醒的认识到,一开始必须严格的进行“相机”训练,因为那是基础,也是最重要的。

老师在课上同时教手绘和板绘。手绘就是传统的用纸和笔来绘制,而板绘使用数码板或iPad来绘制。手绘对于形的准确度的要求要比板绘高非常多,因为不好修改,所以每一步都得要仔细和认真,而板绘相对来说要容易不少。另外,板绘对于素描练习是非常方便的,因为可以针对某一个知识点来进行侧重练习。例如,可以练习形准,可以练习笔触,可以练习光影等。为了随时可以练习,我去上海的时候还顺便买了新的iPad,下面的素描都是在iPad的Procreate上完成。

手绘和板绘虽然难度不同,但是都相通,希望经过一段时间的板绘练习后,某一天拿起纸和笔也能够画出想要的画。

近期作品

我画的第一张素描,画的是美国的一个影星:安妮海瑟薇。很用心的花了三天的时间,期间还让老师点评了几次。我在画画的时候很容易画到画里。其实也是上面提到的,只关心画是否正确而忽略了是否准确。这幅画能完成主要归结于老师的耐心讲解和运气不错。

安妮海瑟薇

这幅画画的是现实中认识的一个女孩子,她经历过人生低谷期,最终努力走出来了。我花费了三小时完成了素描,希望能在这幅画里表达出一种坚强和希望。相比第一幅安妮海瑟薇,我更喜欢这一幅。

罗非

这幅画中的模特是我在逛网站的时候看到的一个女孩子的照片,叫Roseline,觉得挺适合拿来做素描练习,于是就开始画了,我并不认识她,也和她没有任何的交集。最后老师也提了些意见,这里是最终修改的版本。

Roseline

有一天晚上想要快速的画一幅画,于是在收集的照片中找了一张比较简单的,然后花了三小时完成,结果效果还行。不知道什么时候能够一小时内完成一幅这样的素描呢?

快速练习

后记

我进行了很多练习,也让我意识到自己的缺点以及技法上的不足。不断的练习和思考后,渐渐能够有效的缩短绘制时间,下笔也更加的大胆和简练。

我很热爱这些能够让自己安静下来的事情,编程,雕刻还是素描。也许在某一天,这些事情能够有效的组合起来,创造出些什么。如果没有,那也没关系,因为这些过程真的很享受。

为什么需要包管理

包管理系统并不是一开始就出现在编程的世界中的。C++语言对于通用代码的管理,最初使用的是函数。这在汇编中,将参数压栈再使用call指令来调用是同样的概念。慢慢的,开源软件开始流行,越来越多的项目会使用别人写好的库,虽然是方便,但导致项目依赖变得越来越复杂。新的编程语言都直接带了了官方的包管理工具,比如Go或Rust,而古老的C++语言也开始引入包管理工具。

C++包管理的发展简述

传统Linux下,使用各Linux发行版的包管理工具来安装程序要使用的扩展库,比如,在Debian下若要使用OpenSSL,则可以使用apt-get来安装libssl-dev,然后在代码中就可以用#include <openssl/sha.h>来使用OpenSSL中的功能。

C++迫切的需要一个具有跨平台能力的包管理工具,此时vcpkg就诞生了。例如,你可以使用vcpkg install openssl来下载并安装OpenSSL,并且可以指定版本号。安装完毕后,在当前的项目里稍做配置则可以使用OpenSSL库的各种功能。关于vcpkg可以查看vcpkg来了解它是如何被安装到各平台上的。

使用vcpkg可以方便的在不同的平台安装和管理依赖库,让跨平台开发中,对库的依赖变得简单和方便,但是,我们仍然会碰到一些库并没有被vcpkg收录的情况。

CMake与扩展库支持

CMake在3.14版本中引入了FetchContent模块,使用该模块可以使用不同的协议从互联网上下载依赖库到本地。于是我们可以使用该模块来下载并配置一些未被vcpkg收录的库。但是FetchContent需要被依赖的库是使用CMake来构建的,于是,那些不是使用CMake来构建的库,FetchContent模块则不适用了。

当FetchContent不适用的时候,我们可以使用CMake的ExternalProject模块,该模块和FetchContent模块很相似,也可以下载某个依赖库并且配置,编译和安装。使用它可以添加非CMake的项目,因为ExternalProject模块可以指定配置方式,编译方式等各种参数。

遵循的包管理原则

使用C++包管理和CMake,遵循一个简单的原则:若需要安装的扩展库在vcpkg中存在,则尽量使用vcpkg中的库,若该扩展库并没有被vcpkg收录,但是该扩展库使用了CMake作为项目管理,则使用CMake的FetchContent模块来下载和使用该库,否则,使用ExternalProject模块来下载和使用该库。

C++的包管理工具,不只有vcpkg,在世界上还有很多优秀的C++包管理器,vcpkg可能并不是最强大的。但是相对来说却是简单易用的。同时配合使用CMake的FetchContent和ExternalProject两个扩展模块,可以很好解决第一次配置工程前要手动下载、编译和安装扩展库的问题。

想要解决心中的杂乱,去读一本有用的书不失为一个好方法。

学习Rust

鸣神の 少しとよみて さし昙り 雨も降らんか 君を留めん
鸣神の 少しとよみて 降らずとも 我は止まらん 妹し留めば

隐约雷鸣 阴霾天空 但盼风雨来 能留你在此
隐约雷鸣 阴霾天空 即使天无雨 我亦留此地

——《言の葉の庭》

言叶之庭