Posts

Showing posts from November, 2021

心本绝尘何用洗,身中无病岂求医?欲知是佛非身处,明鉴高悬未照时

人生的“意义”

我并不喜欢意义,他一点也不好玩。好像虽然你永远也出不去,但你仍想找一条绳索把自己牢牢的捆在原地。 一个变化无穷的自发系统中,意义是在其内还是其外的呢? 比如你是一个数轴,你通过移动一个点来观察探寻自己。你发现数之间的有不同的关系,数之间也有神奇的结构,并且怎么也分不完。你就这样探寻啊探寻,发现好像永远也探寻不完。你说你的意义在哪呢? 关于活在当下,人如何能不活在当下?所谓的目的是判断你活在当下的条件吗? 我无法给出答案,因为答案一直在那,或者说从来就没有问题。

也说“本质”

本质--本是本来根本,质是质料 通常语义下的本质,是我们希望通过语言描述一个事物,这个描述具有超越时空的广泛性,共通性。而这样做出的描述,能让我们从过去的经验中得到一个这个事物的精准印象。简单说还是在回溯中发现,从过去中总结。但要意识到这种连结并不是事物真实的“本质”或者“本源”,只是当下的我们对过去产生的连结,一种投射而已。 可感世界具有一个连续的“形式”,正因为这个连续的形式我们才能追溯“过去”,并且给我们一个事物恒常的错觉。譬如最有名的例子忒修斯之船,船从头到尾完全换掉了,你说他还是原来的船吗,之所以会对这个问题产生疑问正是因为形式的存在--船的形式看起来没变。其他的例子比如一个军队的编制xx排,人早就打光了,以前的人一个也没有了,你说xx排还在不在。     事物的要素虽然在变,但是其形式隐含了过去的状态,或者说其现在的形式与其过去的形式有显式的联系。因为这种联系,我们能从这些“连结”来追溯过去。所以我们是从“当下”追溯“过去”,是一种“认知的投射” “本质”,或者说语义上的“本质”,据我观察大概有这样几种。一是范畴上的本质。譬如凳子,先有一种形式出现--某猿人觉得站着吃饭不怎么舒服,便找来一个较为光滑的石头放在屁股下面以便休息,这时凳子的形式出现了。虽然语言还未出现,但认知以及可被认知的形式已经存在。此后其他猿人觉得这种光滑的石头相当不错,于是一直保留发展下来,一直到现在各种各样的坐具。那么什么是凳子的本质呢,这时我们找到经验中所有叫凳子的东西,然后观察它们的共性,对这个共性进行描述。通常,描述应当是直接的。比如我可以说凳子的本质是一种没有靠背的坐具。又比如对于婚姻的本质,你会把你认为所有符合婚姻的情况全部分析一遍,然后试图得出结论。 用形式探寻本质,形式是依赖于认知的,尝试使用当下的一部分形式,来为过去以至于未来的形式做出“完满的说明”。这是不行的。 第二种是“还原论”,就是把物体细分再细分,以期望找到“最终的质”,这个质就算是本质了。那么,一个形式被分成多个更小的形式,这个更小的形式算不算本质呢。另外,把一个形式进行细分,你仍能得到一个形式,你可以一直分下去,没有止尽。 如果仍要说本质,我只能说他是“自发的”,如源源不断的泉水一样,永远不会停止。我们的知觉将我们从本源世界投射到这个可感世界之中,或者说宇宙通过知觉观察他自己。我...

Godot导出文件格式的变更

godot项目导出后,路径会有所变化,此时和编辑器内的路径已经不同,使用file_exist方法可能会失败  导出前--导出后 .png-->.png.import .jpg-->.jpg.import .tres-->.tres .gd-->.gdc .tscn-->.tscn 代码上判断需要变更为导出后的格式 if dir.file_exists(tex_path) or dir.file_exists(tex_path + ".import"): 其他格式如果不确定导出后的格式,可以在导出时选择导出pck/zip,解压后进行对比

三胀式蒸汽机浅析

Image
三胀式蒸汽机(Tiple expansion engine)是一种改良的热效率更高的复合式蒸汽机(Compound steam engine)。复合蒸汽机是蒸汽机的一种类型,蒸汽在两个或两个以上阶段进行扩展。复合发动机的典型流程,蒸汽首先在高压(HP) 气缸中膨胀,然后在释放热量和压力后,直接排入一个或多个大容量低压(LP)气缸中。多扩展发动机采用压力逐渐降低的额外气缸,从蒸汽中提取更多能量。通过让蒸汽反复通过多个气缸来提高效率。最终的蒸汽由于压力过低不足以推动活塞,则以容易驱动的蒸汽轮机turbine engine来代替。早期的很多船体都是使用的这种技术的蒸汽发动机。熟知的泰坦尼克号也是采用的这种发动机。 Compound steam engine - Wikipedia

动画技巧

  Animation Tricks (wpi.edu) 动画技巧 由苏珊娜·马丁 动画可以被认为是一个"把戏"。好的技巧是那些没有注意到,除非他们被指出。本文将描述四种类型的技巧:设计、实现、节约和制作 [BLIN94],以及动画人物 [LASS94] 的技巧。 设计技巧 动画的基本意图是传达一些东西。有四种类型的设计技巧:吸引技巧、分心技巧、计时技巧和运动增强。 吸引技巧 观众对设计者认为图像重要部分的关注方向是静止图像或移动图像设计最重要的方面之一。这对移动图像尤其重要,因为它们在屏幕上已经很长时间没有出现在屏幕上:观看者没有选择长时间研究它。人们必须让观看者查看新动作在全部结束之前发生的地方。以下是实现此目标的方法: 出现和消失 屏幕上的变化会引起眼睛的注意。从存在到不存在,反之亦然,这是相当戏剧性的。 闪烁 在它移动之前眨眼会引起观众的注意。 预期和过度射击 在向预期方向移动之前,让对象备份一点,从而预测操作。 见锯效果 引导观众进入一些这样的转变,通过"摩擦来回转换"一点 并行操作 要指出屏幕不同部分的两个事物之间的连接,请同时上下摇晃它们,以吸引注意力。 紧张和释放 张力是通过使形状看起来不平衡,几乎翻倒而形成的。释放来自被牢固放置的对象。 犹豫 使对象暂停一点,然后再将它们移动到其最终位置。这积累了预期。 分心技巧 有时有必要分散观看者对屏幕上某些内容的注意力。这可能是动画渲染中的一个小故障,也可能是动画师为避免一些冗长或复杂的计算而使用的捷径。一个例子是旧的切换器:有时动画中不同点的同一对象需要不同的模型。 计时技巧 这些技巧适用于您采取行动的时间。 速度调整 如果物理动作发生得太快,看不到,只需减慢时间尺度。这类似于缩放对象以安装在屏幕上。 对数缩放 当飞入大小差异很大的物体时,可以直接对距离的对数进行动画化,而不是直接对距离进行动画化。 何时翻倍/单帧 双框是渲染其他帧并录制每个渲染帧两次的过程。这使得一个动作似乎移动得更快,有时被用来增加现场的活力。单个帧比双帧更可取,但渲染需要更长的时间。 重叠操作 各种动作在时间上重叠,使动画看起来更有活力。 运动增强 如果不以某种方式夸大某些动作,就很难传达它们。例如: 坠落的尸体 要给人留下物体持续下降的印象,请在跟踪对象时滚动的背景中放置一些纹理。另一种技术是...

建筑风格年表

BC6000-1000 BC6000~BC2800 新石器建筑|新石器时代 Neolithic architecture|Neolithic BC4500~BC2000 美索不达米亚建筑|苏美尔文明 Architecture of Mesopotamia|Sumerian BC3200~373 古埃及建筑 Ancient Egyptian architecture|Ancient Egyptian BC2000~1519 中美洲建筑|中美洲 Mesoamerican architecture|Mesoamerican BC1920~BC630 中美洲建筑|亚述帝国 Architecture of Mesopotamia|Assyrian BC776~265 古希腊建筑 Ancient Greek architecture|Ancient Greek BC753~663 罗马建筑 Roman architecture|Roman 330~1520 拜占庭建筑 Byzantine architecture|Byzantine 711~1492 摩尔式建筑 Moorish architecture|Moorish #Spain, Portugal, North Africa 800 前罗马式建筑|卡洛林建筑 Carolingian architecture|Carolingian #france and Northern Europe|northern europe 1000-1750 1000~1300 曷萨拉 Hoysala architecture|Hoysala c.1000-c.1300 1000~1250 基辅罗斯宗教建筑|中世纪俄国 Architecture of Kievan Rus'|Medieval Rus' c.1000-c.1250 1050~1170 仿罗马式建筑 Romanesque architecture|Romanesque 1050–1170 1074~1250 诺曼底式建筑 Norman architecture|Norman 1074–1250 1126~1599 穆德哈尔式Mudéjar 1120–1599 1190~1546 哥...

Krita创建自定义插件(三)-图层的导出

Node--krita内的各种图层,滤镜和组都属于node *对图层node进行删除等其他操作后如果文档画面没有更新吗,要对文档调用refreshProjection(),否则可能和实际图像数据对不上。   导出图片infoObject可选参数 png alpha: bool (True or False) compression: int (1 to 9) forceSRGB: bool (True or False) indexed: bool (True or False) interlaced: bool (True or False) saveSRGBProfile: bool (True or False) transparencyFillcolor: rgb (Ex:[255,255,255]) jpeg baseline: bool (True or False) exif: bool (True or False) filters: bool (['ToolInfo', 'Anonymizer']) forceSRGB: bool (True or False) iptc: bool (True or False) is_sRGB: bool (True or False) optimize: bool (True or False) progressive: bool (True or False) quality: int (0 to 100) saveProfile: bool (True or False) smoothing: int (0 to 100) subsampling: int (0 to 3) transparencyFillcolor: rgb (Ex:[255,255,255]) xmp: bool (True or False) 关于JPEG的导出参数可以参考 Krita导出参数

Krita创建自定义插件(二)--插件界面

Image
krita插件主要使用pyqt组件来进行界面的绘制 Pyqt5 API krita插件可以使用pyqt5的功能,通常用的最多的是QtCore和QtWidgets组件,用来创建插件的用户界面。以及QtCore来进行一些数据操作 QtWidgets QtGui QtCore QtXML PyQt --  Qt for Python Modules — Qt for Python Qt 4.8: Widgets and Layouts (utexas.edu) Qt 4.8: Layout Management (utexas.edu) 首先script文件头引用pyqt的相关库 from PyQt5.QtWidgets import (QDialog, QBoxLayout, QPushButton, QRadioButton, QSlider, QFormLayout, QButtonGroup, QFrame) Qt界面主要由QtWidgets.QWidget和 QtWidgets. QLayout组成。QWidget用来绘制相关组件,如按钮,标签,输入框等。QLayout用来对组件进行布局管理。 一个界面的例子(下面黑色字为QWidget,红色为QLayout) --QDialog(root)      |-- QBoxLayout     |      |--QLabel     |      |--QSlider      |-- QFormLayout           |--QPushButton          |--QLineEdit 创建的方法 dialog = QDialog() dialog_layout = QBoxLayout() dialog .setLayout( dialog_layout) 或者 dialog = QDialog() dialog_layout = QBoxLayout(dialog_layout) 添加action到自定义菜单 Creati...

代码注释格式

注释的原则 不要注释显而易见的事情 应当与描述的对象相一致 清楚指向所描述的内容(哪一行或哪个代码块) 可读性,易读性 有些注释可使用代码拼成简单的图像来说明 使用python注释符号#,其他语言同理 单行代码注释 #This is a short code comment 特殊代码标记(>后可跟自定义标记字母) #This is a code mark>>>>>>>>M 函数/模块内注释(多级) #--------This is a in function code part comment #======== This is a in function code part comment ======== ######### This is a in function code part comment ######## 代码文件总纲(总体功能描述) #******************************** #This is a total description #******************************** 模块注释 #----------------------------------------------- #|        This is a module description         | #-----------------------------------------------

鼠标手的防治

首先鼠标灵敏度不要太小,尽量使鼠标活动范围在10cm*10cm内 鼠标不宜握的太紧。个人认为最佳是两个手指与掌心,拇指和小指轻轻托住鼠标即可 小臂不要紧贴桌面,这样会让鼠标把你的腕部垫高,引起血管压迫。好一点的做法是让小臂近肘部搭在桌面边缘,使小臂与桌面有一个大约15度的角度

Krita导出Jpeg参数比较

Image
Jpeg( JPEG - Wikipedia )是一种常见的有损压缩图片格式,由于体积小压缩率高的特点被网络广泛使用。适用于无透明度,颜色较为丰富的图片,如风景人像等照片。 Jpeg保存主要有这几种参数 quality-质量(0-100),越高图片越接近原图,文件越大。一般照片50-95都是可接受的范围 在线质量查看: FotoForensics Jeffrey Friedl's Blog » An Analysis of Lightroom JPEG Export Quality Settings (regex.info) optimiz-优化。可以减小图片文件的大小 baseline--强制基线。和质量相关,目前只影响低于质量低于25的图片。建议默认打开,关闭影响图片兼容性,质量低的图片可能在某些浏览器上显示不正确 更多关于强制基线的说明: Jpeg export options • KDE Community Forums Option "Force baseline JPEG" removed from JPEG save dialog (2007) — GIMP Development — gimpusers.com subsampling--亮度重采样-通过降低图片的亮度信息减小图片大小。影响压缩后颜色是否准确。如果图像饱和度较低并且亮度差异明显,可能效果不好。详细 Chroma subsampling - Wikipedia 原图 1x1x1(最佳) 2x1x1(最小) smooth-平滑。调节后画面会失去一些锐利度,文件会变小,不建议使用。 progressive--渐进。图片会从模糊到清晰动态进行加载,适用于网络 forceSRGB--强制转化为srgb。关于色彩空间的更多内容,请查看 色彩管理流程 — Krita Manual 5.0.0 文档 基本来说质量90,重采样1*1*1能得到基本完美的外观与不错的压缩比

图像缩放算法比较

Image
对于upscale,mitchell和bicubic效果最好(较为自然,柔和,大缩放系数下无明显伪影)。其中bicubic颜色较michell饱和度稍低),krita中michell可能有bug,貌似使用的是hamming算法而不是michell,因为有明显伪影 对于downscale,sinc(Lanczos是一种sinc算法)效果最好(最锐利),缺点是颜色较少的图片会在边缘生成较亮的线,普通的bicubic没有这个问题。   compression - Do more compressed PNG images take longer to load? - Super User 通常来讲,文件读取速度主要取决于文件大小。高压缩率造成的时间花费主要在压缩时间增长,而读取时的解压算法比较简单,影响比较小。综合看来大的游戏贴图等应当使用大压缩率文件来降低读取速度。 相关链接 Comparison gallery of image scaling algorithms - Wikipedia What is the best image downscaling algorithm (quality-wise)? - Stack Overflow Image Resizing for the Web and Email (cambridgeincolour.com) Understanding Digital Image Interpolation (cambridgeincolour.com)

Python中 __init__ 函数 内外 定义类的变量的区别

1.在类内,__init__函数外定义类变量 这里先声明两个概念: 类变量:属于类的变量,和实例无关 实例变量:属于实例的变量,和类无关 通过这种方式创建的变量属于当前类,和所有实例都没有关系。 调用此类型的类变量时有两种方式: 当使用“类名.变量名”的方式调用。 使用“实例名.变量名”的方式调用,使用此方法是必须保证实例中没有重名的变量,因为使用“实例名.变量名”的方式调用变量时,系统会先从对象中查找,如果没有再从类中查找。 注:通过 “实例名.类变量名” 对类变量进行赋值并不会改变类变量的值,而是在实例中创建了一个同名的实例变量。 2.在__init__函数内定义类变量 并带有self关键字 通过此方法创建的是实例变量,和类无关。 3.在__init__函数内定义类变量 不带self关键字 通过此方法创建的是函数内的局部变量,和类无关,且只能在函数体内使用。这种定义方法并不局限于__init__函数 其他函数同样适用。 ———————————————— 版权声明:本文为CSDN博主「energy_百分百」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/lch551218/java/article/details/104553096

Krita创建自定义插件(一)--创建hello world

基础教程 How to make a Krita Python plugin — Krita Manual 5.0.0 documentation Krita Scripting School scirpt API(所有函数都能在python script中使用, 即使前方标记#include*.h) API上方出现的架构图中的节点可以点击查看 libkis: Krita Scripting and Plugin Wrapper Library krita源码(查看.h头文件,下方有classes,点进去有api参考) libkis Directory Reference (kde.org) Krita源码(编写插件一般用不到) Introduction to Hacking Krita Graphics / Krita · GitLab (kde.org) krita内有三种插件,单一script文件,extension和docker。extension适用于较复杂的界面和平时无需查看的插件,如插件编辑器和批量导出。Docker用于平时一直显示的插件,如特制的颜色选择器。 *krita不使用github进行拉去请求等操作,GitHub上面只是镜像而已 krita的插件使用python语言编写,熟悉的话非常好上手 python基础教程: Python Tutorial (w3schools.com) 共享或销售插件(Python 脚本) 克里塔可以用用C++或 Python 书写的插件来扩展。扩展 API 是 Krita 不可分割的一部分,并根据 GNU 通用公共许可证获得许可。这意味着,如果您分发了 Krita 插件,它也必须根据 GNU GPL 进行共享。您可以收取下载费用,但您无法阻止其他人分发插件:您的客户将拥有 GNU GPL 保障的所有权利。

Godot 代码风格指南

GDScript style guide — Godot Engine (stable) documentation in English 建议代码顺序 01. tool 02. class_name 03. extends 04. # docstring 05. signals 06. enums 07. constants 08. exported variables 09. public variables 10. private variables 11. onready variables 12. optional built-in virtual _init method  13. built-in virtual _ready method  14. remaining built-in virtual methods  15. public methods  16. private methods 文件命名 Assets naming convention - Gamedev Guide (ikrima.dev)

Krita Plugin保存自定义数据到文件

Is there any way to save an array or dictionary directly into/with a krita document? - Develop / Plugins Development - Krita Artists (krita-artists.org) Document Class Reference (kde.org) from krita import * import re fileName= "/home/grum/test.kra" print( '================================================= EXAMPLE 1 =================================================' ) doc = Krita.instance().createDocument( 300 , 300 , "Test" , "RGBA" , "U8" , "" , 300.0 ) data1= """gam_p1s1=0.5,0.1,0.9,0.5,0.5,0.9,0.1,0.5 gam_p1s3=0.5,0.1,0.84641,0.7,0.15359,0.7 gam_p1s4=0.5,0.1,0.9,0.5,0.5,0.9,0.1,0.5 gam_p2s1=0.5,0.1,0.675,0.275,0.5,0.45,0.325,0.275,0.5,0.55,0.675,0.725,0.5,0.9,0.325,0.725 gam_p3s3=0.5,0.5,0.5,0.15359,0.8,0.32679,0.8,0.67321,0.5,0.84641,0.2,0.67321,0.2,0.32679""" doc.setAnnotation( 'my_plugin_reference_annotation_key1' , "my annotation description" , QByteArray(data1.en...

Godot Ease函数

Image