diff --git a/README.md b/README.md index e6d9b9a..b9f93b9 100644 --- a/README.md +++ b/README.md @@ -7,3 +7,9 @@ - godot start学习交流qq群,710511812 + +# 视频文档修正补充 + +### 4.安装和HelloWorld + +- 建议再看看底61集的视频,学会调整运行时候的屏幕位置,避免运行时候屏幕位置出现问题 diff --git a/doc/demo05_scene_node/image/window01.jpg b/doc/demo05_scene_node/image/window01.jpg new file mode 100644 index 0000000..baadb08 Binary files /dev/null and b/doc/demo05_scene_node/image/window01.jpg differ diff --git a/doc/demo05_scene_node/image/window01.jpg.import b/doc/demo05_scene_node/image/window01.jpg.import new file mode 100644 index 0000000..6940d9b --- /dev/null +++ b/doc/demo05_scene_node/image/window01.jpg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/window01.jpg-32823a860b8204a24190b109b2a373ae.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://doc/demo05_scene_node/image/window01.jpg" +dest_files=[ "res://.import/window01.jpg-32823a860b8204a24190b109b2a373ae.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/doc/demo05_scene_node/image/window02.jpg b/doc/demo05_scene_node/image/window02.jpg new file mode 100644 index 0000000..63d14e7 Binary files /dev/null and b/doc/demo05_scene_node/image/window02.jpg differ diff --git a/doc/demo05_scene_node/image/window02.jpg.import b/doc/demo05_scene_node/image/window02.jpg.import new file mode 100644 index 0000000..1ee18fd --- /dev/null +++ b/doc/demo05_scene_node/image/window02.jpg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/window02.jpg-9bded19978631c8ea19cb8375681215e.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://doc/demo05_scene_node/image/window02.jpg" +dest_files=[ "res://.import/window02.jpg-9bded19978631c8ea19cb8375681215e.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/doc/demo05_scene_node/image/window03.jpg b/doc/demo05_scene_node/image/window03.jpg new file mode 100644 index 0000000..c83a737 Binary files /dev/null and b/doc/demo05_scene_node/image/window03.jpg differ diff --git a/doc/demo05_scene_node/image/window03.jpg.import b/doc/demo05_scene_node/image/window03.jpg.import new file mode 100644 index 0000000..3c11526 --- /dev/null +++ b/doc/demo05_scene_node/image/window03.jpg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/window03.jpg-11b589a1e9c2d147be87f8bc2fb4ab07.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://doc/demo05_scene_node/image/window03.jpg" +dest_files=[ "res://.import/window03.jpg-11b589a1e9c2d147be87f8bc2fb4ab07.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/doc/demo05_scene_node/scene_node.md b/doc/demo05_scene_node/scene_node.md index fe5661a..7a79fdd 100644 --- a/doc/demo05_scene_node/scene_node.md +++ b/doc/demo05_scene_node/scene_node.md @@ -1,4 +1,59 @@ -# 1. 屏幕坐标 +# 1. 屏幕窗口设置 + +- Editor | Editor Settings | Window Placement,设置编辑器运行游戏窗口的位置 + ![Image text](image/window01.jpg) + +- Project | Project Settings | Display,设置游戏窗口的大小等相关参数 + ![Image text](image/window02.jpg) + +- DPI(dots per inch),DPI在高分辨率显示器和手机普及之后,调了之后,画面上的字体等会变大变小。 + +``` +比如我使用一个27寸的4k显示器,如果DPI 100%的话,那么字体就是27英寸的1080p显示器的1/4大小,完全没法看了。 +这个时候,使用DPI 200%,字就又大又清楚了。 + +这个过程在windows上面就是DWM(desktop windows manager)做了scaling。 +``` + +- Vsync,垂直同步 + +``` +垂直同步又称场同步(Vertical Hold),从CRT显示器的显示原理来看,单个像素组成了水平扫描线,水平扫描线在垂直方向的堆积形成了完整的画面。 +显示器的刷新率受显卡DAC控制,显卡DAC完成一帧的扫描后就会产生一个垂直同步信号。 +我们平时所说的打开垂直同步指的是将该信号送入显卡3D图形处理部分,从而让显卡在生成3D图形时受垂直同步信号的制约。 + +当我们选择"等待垂直同步信号"(即打开垂直同步)时,显卡绘制3D图形前会等待垂直同步信号, +当该信号到达时,显卡开始绘制3D图形,如果显卡性能较为强劲,在下个垂直同步信号到来之前已经完成了对该帧的渲染, +显卡就会暂停处理,等下个垂直同步信号到来后才开始渲染下一帧。 +由此可见,当打开垂直同步时,游戏的FPS要受刷新率的制约,对于高端显卡而言,限制了其性能的发挥。 + +假设我们选择不等待垂直同步信号(也就是我们平时所说的关闭垂直同步),那 +么游戏中作完一屏画面,显卡和显示器无需等待垂直同步信号就能够開始下一屏图像的绘制,自然能够全然发挥显卡的实力。 +可是不要忘记,正是由于垂直同步的存在,才干使得游戏进程和显示器刷新率同步,使得画面更加平滑和稳定。 +取消了垂直同步信号,固然能够换来更快的速度,可是在图像的连续性上势必打折扣。 +这也正是非常多朋友抱怨关闭垂直后发现画面不连续的理论原因。 +``` + +![Image text](image/window03.jpg) + +- 屏幕分辨率,屏幕分辨率是指纵横向上的像素点数,单位是px,4:3 是最常见屏幕比例 + ![Image text](image/pixel.jpg) + + +- 屏幕像素和图片像素有什么关系 + +``` +在屏幕显示图片时,如果屏幕的长宽比、像素数和图片一致,只需要每个屏幕像素用子像素的敏感组合表示出图片上的像素就可以了。 +那如果图片像素数和屏幕像素数不一样呢? + +当图片像素大于屏幕像素时,屏幕也是进行合并显示的。 +比如一张1200W像素的图片,要在300W像素的显示器(长宽比一致)上显示,那么系统就需要将图片像素进行四合一计算然后再显示。 +当图片像素数大于屏幕像素数时,高像素图片和低像素图片的显示精细度是一样的! +``` + +- 在godot中,一般position的1个单位长度等于1个图片像素 + +# 2. 屏幕坐标 ![Image text](image/坐标系.png) ![Image text](image/坐标系-godot-1.png) @@ -22,25 +77,7 @@ unity的2d坐标系虽然在左下角,但是unity的屏幕坐标系依然在 - 相对坐标系:又称为局部坐标系或者本地坐标系,相对于父节点的坐标,godot的坐标都是相对坐标 - 屏幕坐标:屏幕的左上角为坐标系原点 - -- 屏幕分辨率,屏幕分辨率是指纵横向上的像素点数,单位是px,4:3 是最常见屏幕比例 - ![Image text](image/pixel.jpg) - - -- 屏幕像素和图片像素有什么关系 - -``` -在屏幕显示图片时,如果屏幕的长宽比、像素数和图片一致,只需要每个屏幕像素用子像素的敏感组合表示出图片上的像素就可以了。 -那如果图片像素数和屏幕像素数不一样呢? - -当图片像素大于屏幕像素时,屏幕也是进行合并显示的。 -比如一张1200W像素的图片,要在300W像素的显示器(长宽比一致)上显示,那么系统就需要将图片像素进行四合一计算然后再显示。 -当图片像素数大于屏幕像素数时,高像素图片和低像素图片的显示精细度是一样的! -``` - -- 在godot中,一般position的1个单位长度等于1个图片像素 - -# 2. 全局和相对坐标的相互转化 +# 3. 全局和相对坐标的相互转化 - 全局坐标和局部坐标(相对坐标)可以相互转化 @@ -52,7 +89,7 @@ Node2D及其子节点的位置可以使用position和gloabl_position来控制。 需要注意的是,全局位置是以场景的左上角为原点的,并不是以根结点的位置作为原点的 ``` -# 3. 场景和节点 +# 4. 场景和节点 ![Image text](image/场景.png) ![Image text](image/节点.png) @@ -61,7 +98,7 @@ Node2D及其子节点的位置可以使用position和gloabl_position来控制。 - 一个游戏可以包含多个场景,但是一个场景中必须有一个根节点,一个根节点可以包含多个不重名的子节点(unity的子节点可以同名),不同名更加符合习惯,为godot点赞。 -# 4. 基本组件 +# 5. 基本组件 - CanvasItem节点,CanvasItem -> Node -> Object - Canvas是画布的意思,所以CanvasItem代表了就是可以被绘制节点,可以设置可视化界面和材质的颜色