如何使用collision pipeline提升python游戏开发 优势优势

扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
当前位置: &
查看: 2912|回复: 30
老司机两天带你走进VR游戏开发之路(线下活动)
16排名<font color="#FF昨日变化2主题帖子积分
蛮牛币3492
在线时间1822 小时
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
本帖最后由 仅为年时 于
10:03 编辑
& && &&&VR会成为今年乃至可以预期到明年中段的一个巨大的引爆点,这是毋庸置疑的。全球十大科技巨头几乎全部在游戏、影视、健康医疗、教育、动作捕捉、360°摄像、光学应用、全息影像等领域开始布局VR。平均三天就有一个公司宣布进入VR领域,平均两三天就有一个新的 VR 行业论坛、VR 峰会、VR 展会。毫无疑问这是做虚拟现实的好时代。
& && &&&2016年被称作是VR元年,而用群雄逐鹿来形容当前VR市场格局可谓恰如其分。8月20日-21日在亦庄创投汇“”发起基于HTCVive的FPS游戏开发主题课程,由“游戏蛮牛”虚拟现实资深高级工程师-骆海粟(中国最早一批虚拟现实游戏开发者,曾开发多款VR游戏)主讲。课程持续两天,快速切入VR游戏开发领域,现场学习安装HTCVive和体验游戏。全程实例讲演省去高浓度鸡汤!老司机带你体验双枪在手,天下我有的感觉!
课程安排:第一天:& && &10:00 – 10:50&&HTC VIVE简介以及VR头显市场的概况& && &10:50 – 11:00&&课间休息& && &11:00 – 12:00&&HTC VIVE设备搭建、SteamVR的安装以及FPS游戏成果体验(每组1人) & && &13:00 – 13:50&&Unity中导入SteamVR插件及每个Demo场景演示& && &13:50 – 14:00&&课间休息& && &14:00 – 14:50&&把TestThrow场景改成保龄球游戏& && &14:50 – 15:00&&课间休息& && &15:00 – 16:00&&自己作品体验及答疑时间& && &16:00 – 17:00&&FPS游戏资源包的导入、武器模型替换及开火特效 第二天:& && &10:00 – 10:50&&光照方式的比较以及场景的光影烘焙& && &10:50 – 11:00&&课间休息& && &11:00 – 12:00&&寻路烘焙以及敌人的逻辑(靠近、攻击) & && &13:00 – 13:50&&动画状态机以及敌人的生成和死亡& && &13:50 – 14:00&&课间休息& && &14:00 – 14:50&&武器射击的射线检测及玩家的死亡& && &14:50 – 15:00&&课间休息& && &15:00 – 15:50&&倒计时与音效的添加& && &15:50 – 16:00&&课间休息& && &16:00 – 17:00&&自己作品体验及答疑时间
图片1.png (1.54 MB, 下载次数: 4)
09:37 上传
图片2.png (1.34 MB, 下载次数: 2)
09:37 上传
课程时间: 日10:00- 日17:00课程地址:北京亦庄经济技术开发区荣昌东街隆盛大厦C座1层行车路线:地铁亦庄线荣昌东街站东200米报名费用:499元/人 (名额有限,本次仅限30人)
课程福利:l HTCVive实操设备搭建l 全程游戏实例培训l 手把手现场开发l 团队分组比赛 (获胜团队赠送“游戏蛮牛”T桖)l 赠送15天硬件测试环境l 赠送项目资源包
注意事项:1.自带电脑。2.提前在报名课程地址(资料区)下载好资源包课程咨询电话:在线联系QQ:Eric: &&Tina:在线报名地址:
图片3.png (642.69 KB, 下载次数: 6)
09:37 上传
[]: 仅为年时 乐于助人,奖励 2
每日推荐:
2147/150排名<font color="#FF昨日变化17主题帖子积分
初来乍到, 积分 147, 距离下一级还需 3 积分
初来乍到, 积分 147, 距离下一级还需 3 积分
在线时间58 小时
好屌啊。。。。
每日推荐:
7排名<font color="#FF昨日变化15主题帖子积分
在线时间31 小时
顶一个,有点贵
每日推荐:
4332/500排名<font color="#FF昨日变化4主题帖子积分
四处流浪, 积分 332, 距离下一级还需 168 积分
四处流浪, 积分 332, 距离下一级还需 168 积分
在线时间96 小时
...........不在北京,想去也去不了,没时间
每日推荐:
头像被屏蔽
3248/300排名<font color="#FF昨日变化8主题帖子积分
偶尔光临, 积分 248, 距离下一级还需 52 积分
偶尔光临, 积分 248, 距离下一级还需 52 积分
在线时间77 小时
提示: 该帖被管理员或版主屏蔽
每日推荐:
61269/1500排名<font color="#FF昨日变化6主题帖子积分
蛮牛粉丝, 积分 1269, 距离下一级还需 231 积分
蛮牛粉丝, 积分 1269, 距离下一级还需 231 积分
蛮牛币4015
在线时间514 小时
沙发。。。
每日推荐:
294/150排名<font color="#FF昨日变化12主题帖子积分
初来乍到, 积分 94, 距离下一级还需 56 积分
初来乍到, 积分 94, 距离下一级还需 56 积分
在线时间24 小时
两天能干啥,科普?
每日推荐:
头像被屏蔽
9排名<font color="#FF昨日变化主题帖子积分
蛮牛币9747
在线时间775 小时
提示: 该帖被管理员或版主屏蔽
每日推荐:
61214/1500排名<font color="#FF昨日变化6主题帖子积分
蛮牛粉丝, 积分 1214, 距离下一级还需 286 积分
蛮牛粉丝, 积分 1214, 距离下一级还需 286 积分
蛮牛币1168
在线时间575 小时
/course/120
每日推荐:
9排名27昨日变化主题帖子积分
蛮牛币4364
在线时间1918 小时
居然去我原公司旧址开趴儿,丧心病狂啊!
哇. 你公司原来在这边啊&
哇. 你公司原来在这边啊&
哇. 你公司原来在这边啊&
每日推荐:
7排名<font color="#FF昨日变化1主题帖子积分
蛮牛币1793
在线时间295 小时
看着好屌啊
重要的事情说三遍!&
重要的事情说三遍!&
重要的事情说三遍!&
重要的事情说三遍!&
重要的事情说三遍!&
每日推荐:
7排名<font color="#FF昨日变化1主题帖子积分
蛮牛币1793
在线时间295 小时
看着好屌啊
每日推荐:
61297/1500排名<font color="#FF昨日变化1主题帖子积分
蛮牛粉丝, 积分 1297, 距离下一级还需 203 积分
蛮牛粉丝, 积分 1297, 距离下一级还需 203 积分
在线时间434 小时
看着好屌啊,没时间啊
每日推荐:
9排名<font color="#FF昨日变化3主题帖子积分
蛮牛币1276
在线时间184 小时
才五百块,太值了,人不在北京,好悲催
每日推荐:
4493/500排名<font color="#FF昨日变化2主题帖子积分
四处流浪, 积分 493, 距离下一级还需 7 积分
四处流浪, 积分 493, 距离下一级还需 7 积分
在线时间175 小时
可惜太远了
每日推荐:
游戏蛮牛给予质量较高、影响力较大的unity相关技术开发者的荣誉称号
经过游戏蛮牛认证的蛮牛小翻译
社区QQ达人
使用QQ帐号登录论坛的用户
连续签到30天
七夕浪漫情人
2015年蛮牛社区浪漫七夕 最美情话活动获奖者
原创精华达人
原创精华帖子总数量 ≥ 100
论坛发帖强人
主题帖子总数量 ≥ 500
在“新人报到 ”版块发过自己的照片
认证开发者
经过游戏蛮牛认证的独立开发者
购买游戏蛮牛书籍
累积数量达到1000蛮牛币
蛮牛论坛干货区作者我挑一些有趣的算法,希望尽量提及相关算法在游戏中的应用。&br&&br&&b&光栅化&/b&&br&&ul&&li&&a href=&///?target=http%3A//en.wikipedia.org/wiki/Bresenham%2527s_line_algorithm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Bresenham's line algorithm&i class=&icon-external&&&/i&&/a& [1]:经典的绘画直线算法,后来还可以稍作修改用于绘画圆弧[2],都不用三角函数或除数,只需用整数加法、减法和乘法。 &/li&&/ul&&img src=&/b7cb85217babb238ac6c_b.jpg& data-rawwidth=&592& data-rawheight=&401& class=&origin_image zh-lightbox-thumb& width=&592& data-original=&/b7cb85217babb238ac6c_r.jpg&&&br&&ul&&li&Perspective-Correct Texture Mapping [3]:透视正确的光栅化纹理贴图算法是1980才出现的。第一代Quake引擎引入后,才开始支持不垂直的墙、不水平的地面天花。&/li&&/ul&&img src=&/24681fdb28cfc1e4342f_b.jpg& data-rawwidth=&1000& data-rawheight=&352& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&/24681fdb28cfc1e4342f_r.jpg&&(图片来自维基百科)&br&&br&&ul&&li&Polygon Rasterization with Edge Function [4]:Bresenham算法如果用来画多边形,两个多边形的共边会被重绘。后来发明了使用简单的edge function去解决这个问题,而且适合并行的硬件实现。现在的GPU都是使用这个算法。&/li&&/ul&&img src=&/bc6a762cbbfeb_b.jpg& data-rawwidth=&492& data-rawheight=&368& class=&origin_image zh-lightbox-thumb& width=&492& data-original=&/bc6a762cbbfeb_r.jpg&&&br&&br&&b&全局光照&/b&&br&&ul&&li&Precomputed Radiance Transfer (PRT) with Spherical Harmonics(SH)[5]:储存静态环境对于各个方向光源的漫反射数据,可以实现动态低频光源的全局光照效果。这种表示方式非常神奇。Halo 3也使用到这种技术[6]。&/li&&/ul&&img src=&/4225d10efdd85cb81c6ef6fe855b14a3_b.jpg& data-rawwidth=&694& data-rawheight=&295& class=&origin_image zh-lightbox-thumb& width=&694& data-original=&/4225d10efdd85cb81c6ef6fe855b14a3_r.jpg&&&br&&ul&&li&Screen-space Ambient Occlusion (SSAO)[7]:Crytek提出的首个屏幕空间环境光遮蔽算法,之后引来大量的研究及改进算法。也有用类似的概念去做近距离的反射,如SSDO[8]。&/li&&/ul&&img src=&/1faa1a94f23aa9b4b1eb_b.jpg& data-rawwidth=&798& data-rawheight=&316& class=&origin_image zh-lightbox-thumb& width=&798& data-original=&/1faa1a94f23aa9b4b1eb_r.jpg&&&br&&ul&&li&Light Propagation Volume (LPV)[9]:Crytek提出的首个动态全局光照算法,不需要预计算。但要在体积数据中计算传播,性能较慢,所以之后再优化成 Cascaded LPV [10]。&br&&/li&&/ul&&img src=&/cda20e301ccbaa6d3b823b22_b.jpg& data-rawwidth=&1198& data-rawheight=&377& class=&origin_image zh-lightbox-thumb& width=&1198& data-original=&/cda20e301ccbaa6d3b823b22_r.jpg&&&br&&ul&&li&Voxel Cone Tracing [11]:也是不需要预计算的动态全局光照算法。把场景动态生成层阶式的体素数据(像mipmap那样的pre-filtering),从光源视角计算直接光照,然后逐像素追踪这组数据获取非直接光照。结果比LPV精确,也可以做到光泽反射(glossy reflection)。&/li&&/ul&&img src=&/a5bc6edfaf47c2be14ba70_b.jpg& data-rawwidth=&1086& data-rawheight=&333& class=&origin_image zh-lightbox-thumb& width=&1086& data-original=&/a5bc6edfaf47c2be14ba70_r.jpg&&&br&&b&阴影&/b&&br&&ul&&li&Shadow Volume [12]:阴影体积是1977年发表的阴影技术,在屏幕空间光栅化阴影体积,可准确判断每个屏幕像素是否在阴影之内。可以处理平行光源和点光源的阴影。1991年[13]讲述如何用stencil buffer来实现此算法,适合在图形加速硬件(当时还没有所谓GPU)上使用。但很多人发现,如果摄像机在阴影体积内,就会出错。在年有多人发现一种解决方法,需要把John Carmack在2000年的电邮[14]中提及这个想法,后来成为2004年《毁灭战士3(Doom 3)》引擎的重要特徵,因他把这项技术发扬光大,即使他非首个发明人,此项技术通常被称为Carmack's Reverse。&/li&&/ul&&img src=&/c0aefec2d7cab_b.jpg& data-rawwidth=&461& data-rawheight=&346& class=&origin_image zh-lightbox-thumb& width=&461& data-original=&/c0aefec2d7cab_r.jpg&&&br&&br&&ul&&li&Parallel Split Shadow Map (PSSM) [15][16] / Cascaded Shadow Map(CSM)[17]:虽然Shadow Volume很吸引,但它需要大量的内存频宽,而且通常不能实现软阴影。后来大部分游戏改为使用Shadow Map(阴影贴图),这更适合GPU,并且可以通过多次采样(Percentage Closer Filtering, PCF)来实现软阴影。然而,阴影贴图也有许多问题,例如远近景物都采用同一张纹理,就会令到近景的精度不足,出现锯齿。2006年香港中文大学的博士生Fan Zhang等人发表了一种 PSSM 算法 [15],为不同距离的场景渲染多张阴影贴图,在采样的时候按距离决定使用那一张。这个方法的变种CSM,在切割上和PSSM有点差异,被广泛使用于现时大部分游戏引擎中。&/li&&/ul&&img src=&/dba24fba68e2ff8eb5a5ab819c50a1a5_b.jpg& data-rawwidth=&511& data-rawheight=&327& class=&origin_image zh-lightbox-thumb& width=&511& data-original=&/dba24fba68e2ff8eb5a5ab819c50a1a5_r.jpg&&&br&&ul&&li&Variance Shadow Map(VSM)[18]:之前谈到用PCF做软阴影,它的坏处就是要做多次采样。那么可否把阴影贴图直接模糊化来实现软阴影?答案是否定的。但是在2006年有学者发表了VSM,它是一种用统计方式来逼近软阴影的效果。 &a href=&/question//answer/& class=&internal&&如何推导方差阴影贴图(variance shadow map, VSM) ? - Milo Yip 的回答&/a&&/li&&/ul&&img src=&/6bb2fb0efc1d_b.jpg& data-rawwidth=&856& data-rawheight=&300& class=&origin_image zh-lightbox-thumb& width=&856& data-original=&/6bb2fb0efc1d_r.jpg&&&br&&b&场景管理&/b&&br&&ul&&li&&a href=&///?target=http%3A//en.wikipedia.org/wiki/Binary_space_partitioning& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Binary Space Partitioning&i class=&icon-external&&&/i&&/a& (BSP)&br&&/li&&li&&a href=&///?target=http%3A//en.wikipedia.org/wiki/Portal_rendering& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Portal rendering&i class=&icon-external&&&/i&&/a&&br&&/li&&li&&a href=&///?target=http%3A//en.wikipedia.org/wiki/Quadtree& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Quadtree&i class=&icon-external&&&/i&&/a&、&a href=&///?target=http%3A//en.wikipedia.org/wiki/Octree& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Octree&i class=&icon-external&&&/i&&/a&:&a href=&/question//answer/?group_id=696704& class=&internal&&游戏场景管理的八叉树算法是怎样的? - Milo Yip 的回答&/a&&/li&&li&Potential Visibility Set (PVS)&/li&&li&Occlusion Culling by Software Rasterization&/li&&/ul&&br&&b&动画/物理&/b&&br&&ul&&li&Particle System&/li&&li&Smoothed Particle Hydrodynamics(SPH)&/li&&li&Curl Noise&/li&&li&Dual Quaternion Skinning&/li&&/ul&&br&&b&碰撞测试&/b&&br&&ul&&li&&a href=&///?target=http%3A//en.wikipedia.org/wiki/Hyperplane_separation_theorem& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Hyperplane separation theorem&i class=&icon-external&&&/i&&/a& (或称separating axis theorem/SAT):凸形状相交测试的基本原理。在&a href=&/question//answer/& class=&internal&&怎样判断平面上一个矩形和一个圆形是否有重叠? - Milo Yip 的回答&/a&中,其实背后也是使用了SAT。&br&&/li&&li&&a href=&///?target=http%3A//en.wikipedia.org/wiki/Gilbert%25E2%Johnson%25E2%Keerthi_distance_algorithm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Gilbert-Johnson-Keerthi distance algorithm&i class=&icon-external&&&/i&&/a& (GJK距离算法):计算两个凸形状的距离(可用于相交测试)&br&&/li&&li&&a href=&///?target=http%3A//en.wikipedia.org/wiki/Sweep_and_prune& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Sweep and prune&i class=&icon-external&&&/i&&/a&:用于broad phase碰撞检测,找出物体AABB是否相交。对于时空上连续的物体运动,算法最坏O(n^2)、最好O(n)。&br&&/li&&/ul&&br&&b&人工智能&/b&&br&&ul&&li&&a href=&///?target=http%3A//en.wikipedia.org/wiki/Minimax& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Minimax&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&///?target=http%3A//en.wikipedia.org/wiki/Alpha%25E2%beta_pruning& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Alpha-Beta Pruning&i class=&icon-external&&&/i&&/a&&br&&/li&&li&A* path finding&/li&&li&&a href=&///?target=http%3A//en.wikipedia.org/wiki/Dijkstra%2527s_algorithm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Dijkstra's algorithm&i class=&icon-external&&&/i&&/a&&br&&/li&&li&&a href=&///?target=http%3A//en.wikipedia.org/wiki/Finite-state_machine& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Finite-state machine&i class=&icon-external&&&/i&&/a&&br&&/li&&li&Behavior Tree&/li&&/ul&&br&(中午吃饭时间写不完,后补)&br&&br&&b&参考&/b&&br&&br&[1] Bresenham, Jack E. &Algorithm for computer control of a digital plotter.& &i&IBM Systems journal&/i& 4.1 (1965): 25-30. &a href=&///?target=http%3A//www.cse.iitb.ac.in/%7Eparagc/teaching/2011/cs475/papers/bresenham_line.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&cse.iitb.ac.in/~paragc/&/span&&span class=&invisible&&teaching/2011/cs475/papers/bresenham_line.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[2] Bresenham, Jack. &A linear algorithm for incremental digital display of circular arcs.& &i&Communications of the ACM&/i& 20.2 (1977): 100-106. &a href=&///?target=http%3A//www.cse.iitb.ac.in/%7Eparagc/teaching/2014/cs475/papers/bresenham_circle.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&cse.iitb.ac.in/~paragc/&/span&&span class=&invisible&&teaching/2014/cs475/papers/bresenham_circle.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[3] Catmull, Ed, and Alvy Ray Smith. &3-D transformations of images in scanline order.& &i&ACM SIGGRAPH Computer Graphics&/i&. Vol. 14. No. 3. ACM, 1980. &a href=&///?target=http%3A///Papers/CG/2pass80.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/Papers/CG/2&/span&&span class=&invisible&&pass80.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[4] Pineda, Juan. &A parallel algorithm for polygon rasterization.& &i&ACM SIGGRAPH Computer Graphics&/i&. Vol. 22. No. 4. ACM, 1988. &a href=&///?target=http%3A//people.csail.mit.edu/ericchan/bib/pdf/p17-pineda.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&people.csail.mit.edu/er&/span&&span class=&invisible&&icchan/bib/pdf/p17-pineda.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[5] Sloan, Peter-Pike, Jan Kautz, and John Snyder. &Precomputed radiance transfer for real-time rendering in dynamic, low-frequency lighting environments.& &i&ACM Transactions on Graphics (TOG)&/i&. Vol. 21. No. 3. ACM, 2002. &a href=&///?target=http%3A//www1.cs.columbia.edu/%7Eravir/6998/papers/p527-sloan.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&www1.cs.columbia.edu/~r&/span&&span class=&invisible&&avir/6998/papers/p527-sloan.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[6] Chen, Hao, and Xinguo Liu. &Lighting and material of Halo 3.& &i&ACM SIGGRAPH 2008 Games&/i&. ACM, 2008. &a href=&///?target=http%3A///wordpress/media/08-Chen-Lighting_and_Material_of_Halo3.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/wordp&/span&&span class=&invisible&&ress/media/08-Chen-Lighting_and_Material_of_Halo3.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[7] Mittring, Martin. &Finding next gen: Cryengine 2.& &i&ACM SIGGRAPH 2007 courses&/i&. ACM, 2007. &a href=&///?target=http%3A///wordpress/media/2012/10/Chapter8-Mittring-Finding_NextGen_CryEngine2.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/wordp&/span&&span class=&invisible&&ress/media/2012/10/Chapter8-Mittring-Finding_NextGen_CryEngine2.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[8] Ritschel, Tobias, Thorsten Grosch, and Hans-Peter Seidel. &Approximating dynamic global illumination in image space.& &i&Proceedings of the 2009 symposium on Interactive 3D graphics and games&/i&. ACM, 2009. &a href=&///?target=https%3A//people.mpi-inf.mpg.de/%7Eritschel/Papers/SSDO.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&people.mpi-inf.mpg.de/~&/span&&span class=&invisible&&ritschel/Papers/SSDO.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[9] Kaplanyan, Anton. &Light propagation volumes in cryengine 3.& &i&ACM SIGGRAPH Courses&/i& 7 (2009): 2. &a href=&///?target=http%3A///download/Light_Propagation_Volumes.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/download/Lig&/span&&span class=&invisible&&ht_Propagation_Volumes.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[10] Kaplanyan, Anton, and Carsten Dachsbacher. &Cascaded light propagation volumes for real-time indirect illumination.& &i&Proceedings of the 2010 ACM SIGGRAPH symposium on Interactive 3D Graphics and Games&/i&. ACM, 2010. &a href=&///?target=http%3A//www.vis.uni-stuttgart.de/%7Edachsbcn/download/lpv.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&vis.uni-stuttgart.de/~d&/span&&span class=&invisible&&achsbcn/download/lpv.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[11] Crassin, Cyril, et al. &Interactive indirect illumination using voxel cone tracing.&&i&Computer Graphics Forum&/i&. Vol. 30. No. 7. Blackwell Publishing Ltd, 2011. &a href=&///?target=https%3A///sites/default/files/publications/GIVoxels-pg2011-authors.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/sit&/span&&span class=&invisible&&es/default/files/publications/GIVoxels-pg2011-authors.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[12] Crow, Franklin C. &Shadow algorithms for computer graphics.& &i&ACM SIGGRAPH Computer Graphics&/i&. Vol. 11. No. 2. ACM, 1977. &a href=&///?target=http%3A//excelsior.biosci.ohio-state.edu/%7Ecarlson/history/PDFs/crow-shadows.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&excelsior.biosci.ohio-state.edu&/span&&span class=&invisible&&/~carlson/history/PDFs/crow-shadows.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[13] Heidmann, Tim. &Real shadows, real time.& &i&Iris Universe&/i& 18 (1991): 28-31.&br&[14] Carmack, John, &e-mail to Mark Kilgard on Shadow Volume&, 23 May 2000. &a href=&///?target=http%3A//web.archive.org/web/35/http%3A///attach/6832& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&web.archive.org/web/200&/span&&span class=&invisible&&//attach/6832&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[15] Zhang, Fan, et al. &Parallel-split shadow maps for large-scale virtual environments.& &i&Proceedings of the 2006 ACM international conference on Virtual reality continuum and its applications&/i&. ACM, 2006.&br&[16] Zhang, Fan, Hanqiu Sun, and Oskari Nyman. &Parallel-split shadow maps on programmable gpus.& &i&GPU Gems&/i& 3 (2007): 203-237. &a href=&///?target=http%3A//http./GPUGems3/gpugems3_ch10.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GPU Gems 3 - Chapter 10. Parallel-Split Shadow Maps on Programmable GPUs&i class=&icon-external&&&/i&&/a&&br&[17] Dimitrov, Rouslan. &Cascaded shadow maps.& &i&Developer Documentation, NVIDIA Corp&/i& (2007). &a href=&///?target=http%3A//www.cse.chalmers.se/edu/year/2011/course/TDA361/Advanced%2520Computer%2520Graphics/cascaded_shadow_maps.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&cse.chalmers.se/edu/yea&/span&&span class=&invisible&&r/2011/course/TDA361/Advanced%20Computer%20Graphics/cascaded_shadow_maps.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[18] Donnelly, William, and Andrew Lauritzen. &Variance shadow maps.&&i&Proceedings of the 2006 symposium on Interactive 3D graphics and games&/i&. ACM, 2006. &a href=&///?target=http%3A//www.punkuser.net/vsm/vsm_paper.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&punkuser.net/vsm/vsm_pa&/span&&span class=&invisible&&per.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&
我挑一些有趣的算法,希望尽量提及相关算法在游戏中的应用。 光栅化
[1]:经典的绘画直线算法,后来还可以稍作修改用于绘画圆弧[2],都不用三角函数或除数,只需用整数加法、减法和乘法。 Perspective-Correct Texture Mapping …
之前在公司内做的培训计划中,基础内容大概有以下这些:&br&&br&三维几何学基础:&br&&ol&&li&三维坐标系统&br&&/li&&li&点与矢量&br&&/li&&li&矩阵与几何变换&br&&/li&&li&四元数与三维旋转&br&&/li&&/ol&&br&实时渲染管道:&br&&ol&&li&应用阶段(场景管理、可见性剔除、分组排序、提交图元)&br&&/li&&li&几何阶段(顶点着色、图元组装、面向剔除、三角形裁剪、透视除法、视区变换)&br&&/li&&li&光栅化阶段(扫瞄转换、scissor/stencil/alpha 测试、alpha 混合)&br&&/li&&/ol&&br&游戏中的光照与阴影:&br&&ol&&li&实时光照分类(正向渲染、延迟渲染、Tile 正向/延迟渲染)&/li&&li&局部光照中的光源(环境光、方向光、点光、聚光、cookie)&br&&/li&&li&阴影(平面阴影、阴影体积、阴影贴图、PCF、VSM、CSM)&br&&/li&&li&全局光照(光照贴图、幅照度环境贴图、球谐函数)&br&&/li&&/ol&&br&材质着色原理与实践:&br&&ol&&li&材质反射模型(渲染方程、BRDF、Lambertian、Phong、Blinn-Phong)&br&&/li&&li&材质着色器编程(环境光、环境遮蔽、发光物体、贴图采样、环境贴图、法线贴图、轮廓光、纹理坐标动画)&br&&/li&&li&特殊着色器(卡通渲染、Kajiya-Kay、??)&br&&/li&&/ol&&br&由浅入深可先看[1],然后[2]。数学方面可参考[3]。&br&&br&[1] 《游戏引擎架构》,叶劲峰译,电子工业出版社,2014&br&[2] Akenine-M?ller, Tomas, Eric Haines, and Naty Hoffman. Real-time rendering Third Edition, CRC Press, 2008.&br&[3] Lengyel, Eric. Mathematics for 3D game programming and computer graphics. Cengage Learning, 2012.
之前在公司内做的培训计划中,基础内容大概有以下这些: 三维几何学基础: 三维坐标系统 点与矢量 矩阵与几何变换 四元数与三维旋转 实时渲染管道: 应用阶段(场景管理、可见性剔除、分组排序、提交图元) 几何阶段(顶点着色、图元组装、面向剔除、三角形…
&p&正好手头有个demo,这里尽量用最简单的思路介绍一下。&/p&&p&说明,这个是给零基础的同学看的,不需要任何计算机基础。&/p&&p&同样,这个处理思路忽略了非常多的细节,只是为了让大家更好地理解原理而已。&/p&&p&1。首先看下如何提取特征,看这么多数字,眼睛都花了。&/p&&img src=&/v2-a019bb43ffecb7bd93aa3304_b.png& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-a019bb43ffecb7bd93aa3304_r.png&&&p&2。简单说就是把数字划分成很多很多的小块,比如下图这样:&/p&&p&每个数字被划分成了4*5=20个小块。&/p&&p&分好了小块以后,其实我们要知道每个小块是由很多个像素构成的。&/p&&p&或者这样理解,每个小块其实可以划分为更多的小块,即每个小块是由很多个更小的块构成的。&/p&&p&比如每个小块可能是100*100个更小的小块构成的。&/p&&p&为了叙述上的方便,把小块记为B(Bigger),更小的块记为S(Smaller)。&/p&&p&因此,比如数字8,是由5行4列共计:5*4=20个小块B构成。&/p&&p&每个小块B内其实是由100*100=100000个像素(更小块S)构成的。&/p&&img src=&/v2-76dff3a0ef11d0643bfee92_b.png& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-76dff3a0ef11d0643bfee92_r.png&&&p&3。数一下每个小块B内,有多少个黑色的像素。&/p&&p&或者这样理解,每个小块B内有多少个更小块S是黑色的。&/p&&p&比如第一行:&/p&&ul&&li&第1个小块B中,共有0个更小块S是黑色的,记为0.&/li&&li&第2个小块B中,共有28个更小块S是黑色的,记为28.&/li&&li&第3个小块B中,共有10个更小块S是黑色的,记为10.&/li&&li&第4个小块B中,共有0个更小块S是黑色的,记为0.&/li&&/ul&&p&以此类推,可以计算出每一行的每一个小块B的数字是多少,写好就好了。&/p&&p&这就是数字的特征,如果仔细观察,每个数字的特征是不一样的。&/p&&p&因为他们的每个小块B内的数字是不一致的。&/p&&img src=&/v2-f3a9fb1ab73cb114b92af1_b.png& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-f3a9fb1ab73cb114b92af1_r.png&&&p&4。为了方便,我们把得到的特征,排成一排(数组)就好了。&/p&&p&&br&&/p&&img src=&/v2-32e793e6e31f1dac0c91db_b.png& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-32e793e6e31f1dac0c91db_r.png&&&p&&br&&/p&&p&5。所以,我们可以看看数字8的特征,其实就是一堆数字(数组)构成的。&/p&&p&&br&&/p&&img src=&/v2-1f80b076d6b6a3ca1d378_b.png& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-1f80b076d6b6a3ca1d378_r.png&&&p&6。照着葫芦画瓢,每个数字的特征其实都是一堆数字构成的。&/p&&p&这个数字类似于我们的身份证号码,一般来说,是独一无二的。&/p&&p&&br&&/p&&img src=&/v2-dbca972cc5dde77a8e194e_b.png& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-dbca972cc5dde77a8e194e_r.png&&&p&7。那识别是怎么回事呢?&/p&&p&就是比较要识别的数字特征和步骤6中的哪个数字的特征最接近就好了。&/p&&p&这里为了方便,假设要识别数字“8”,然后看看怎么从一堆(为了方便只有两个)数字里面选出来他到底应该是几?&/p&&p&&br&&/p&&img src=&/v2-53e19dd341dd9c825d255c3db8650c4c_b.png& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-53e19dd341dd9c825d255c3db8650c4c_r.png&&&p&&br&&/p&&p&8。当然,为了方便,特征简化了,我们假设每个数字只有4个特征值了。&/p&&p&&br&&/p&&img src=&/v2-104c65fd80251ab54cebd63dca48bb5e_b.png& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-104c65fd80251ab54cebd63dca48bb5e_r.png&&&p&9。这里要用到一个欧氏距离的概念。&/p&&p&简单点说,就是有一个罪犯,经过警察叔叔的缜密侦查,发现他的身高&b&约&/b&是175cm(通过脚印就可以判断出身高,大家自己百度一下)。&/p&&p&警察过来抓人了,两个已知嫌疑人,一个A身高176cm,另外一个B身高168厘米。&/p&&p&那我计算一下,取绝对值就好了:&/p&&ul&&li&A与嫌疑人的差值:176-175=1cm&/li&&li&B与嫌疑人的差值:175-168=7cm&/li&&/ul&&p&那当然,罪犯就是身高176cm的A了。&/p&&p&当然,由于当前不仅仅有身高,还有体重,那就要综合计算身高和体重了。&/p&&p&为了更好地计算,就用到公式:&/p&&p&看起来很复杂,简单说就是把所有的差值取平方和后开根号。&/p&&p&这就是一种计算方法,不理解原理其实也没有关系,总之就是计算一下,知道怎么计算就行了。&/p&&img src=&/v2-7c2b272c8fbb_b.png& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-7c2b272c8fbb_r.png&&&p&10。看看罪犯和嫌疑人的相似程度。&/p&&p&好了,计算一下要识别的这个图像(图中待识别右侧的8,这里我们假装不认识他)和数据库里面保存的数字8的欧式距离吧!&/p&&img src=&/v2-d2d2b0eaec2f457ce3af9a_b.png& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-d2d2b0eaec2f457ce3af9a_r.png&&&p&恩,计算就是把每个对应的特征值相减,取平方,计算和,开根号。&/p&&p&得到结果,当前结果是根号3.&/p&&p&11。再次计算罪犯和另外一个嫌疑人的相似程度。&/p&&p&好了,计算要识别的图像和数据库里面的数字7的特征值进行比较。&/p&&p&&br&&/p&&img src=&/v2-cbdbac9a512e181a9c29_b.png& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-cbdbac9a512e181a9c29_r.png&&&p&恩,绿色部分是我们的计算结果,根号7322.&/p&&p&12。识别&/p&&p&罪犯和嫌疑人的计算差异值,一个是根号3,另外一个是根号7322.&/p&&p&距离小的是识别结果。&/p&&p&这里,根号3是识别结果,所以,要识别的图像是数字8.&/p&&img src=&/v2-a958bb2d06c4afe3c2e6_b.png& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-a958bb2d06c4afe3c2e6_r.png&&&p&这就是识别过程了。&/p&&p&可以用图表示一下:&/p&&img src=&/v2-b0c682c605dcc7c0c5828_b.png& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-b0c682c605dcc7c0c5828_r.png&&&p&在提取特征前,图像可能是彩色的,就先把他处理为二值的,这样好方便计算其中黑色小块的个数。&/p&&p&写得比较匆忙,欢迎大家对细节提出改进意见。谢谢。&/p&&p&版权所有,转载请私信联系。&/p&
正好手头有个demo,这里尽量用最简单的思路介绍一下。说明,这个是给零基础的同学看的,不需要任何计算机基础。同样,这个处理思路忽略了非常多的细节,只是为了让大家更好地理解原理而已。1。首先看下如何提取特征,看这么多数字,眼睛都花了。2。简单说就…
实现个简单的固定渲染管线软渲染器不算复杂,大家都说了那么多了,我来个更短的吧,差不多700行代码就可以搞定了。之所以很多人用 D3D用的很熟,写软渲染却坑坑洼洼,主要是现在大部分讲图形的书,讲到透视投影时就是分析一下透视变换矩阵如何生成,顶点如何计算就跳到其他讲模型或者光照的部分了。&br&&br&因为今天基本上是直接用 D3D 或者 OGL,真正光栅化的部分不了解也不影响使用,所以大部分教材都直接跳过了一大段,摄像机坐标系如何转换?三角形如何生成?CVV边缘如何检测?四维坐标如何裁剪?边缘及步长如何计算?扫描线该如何绘制?透视纹理映射具体代码该怎么写?framebuffer zbuffer 到底该怎么用?z-test 到底是该 test z 还是 w 还是 1/z 还是 1/w ?这些都没讲。&br&&br&早年培训学生时候,我花两天时间写的一个 DEMO,今天拿出来重新调整注释一下,性能和功能当然比不过高大上的 Salviar。但一般来讲,工程类项目代码不容易阅读,太多边界情况和太多细节优化容易让初学者迷失,这个 mini3d 的项目不做任何优化,主要目的就是为了突出主干:&br&&br&源代码:&a href=&///?target=https%3A///skywind3000/mini3d& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&skywind3000/mini3d · GitHub&i class=&icon-external&&&/i&&/a&&br&可执行:&a href=&///?target=http%3A//www.skywind.me/mw/images/c/c8/Mini3d.7z& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&skywind.me/mw/images/c/&/span&&span class=&invisible&&c8/Mini3d.7z&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&br&操作方式:左右键旋转,前后键前进后退,空格键切换模式,ESC退出。&br&&br&&b&特性介绍:&/b&&br&&ul&&li&单个文件:源代码只有一个 mini3d.c,单个文件实现所有内容,易阅读。&br&&/li&&li&独立编译:没有任何第三方库依赖,没有复杂的工程目录。&br&&/li&&li&模型标准:标准 D3D 坐标模型,左手系 + WORLD/VIEW/PROJECTION 三矩阵&br&&/li&&li&简单裁剪:简单 CVV 裁剪&br&&/li&&li&纹理支持:最大支持 1024 x 1024 的纹理&br&&/li&&li&深度缓存:使用深度缓存判断图像前后&/li&&li&透视贴图:透视纹理映射以及透视色彩填充&br&&/li&&li&实现精简:渲染部分只有 700行, 模块清晰,主干突出。&br&&/li&&li&详细注释:主要代码详细注释&br&&/li&&/ul&&br&&b&截图效果:&/b&&br&&br&透视纹理映射&br&&img src=&/6c43d3fdfc195ed35fe788_b.png& data-rawwidth=&816& data-rawheight=&638& class=&origin_image zh-lightbox-thumb& width=&816& data-original=&/6c43d3fdfc195ed35fe788_r.png&&&br&色彩填充&br&&img src=&/be90d1cc702e84a7df4e6ce_b.png& data-rawwidth=&816& data-rawheight=&638& class=&origin_image zh-lightbox-thumb& width=&816& data-original=&/be90d1cc702e84a7df4e6ce_r.png&&&br&线框图&br&&img src=&/17de0efb5d341de3e7dba28d2d0c3066_b.png& data-rawwidth=&816& data-rawheight=&638& class=&origin_image zh-lightbox-thumb& width=&816& data-original=&/17de0efb5d341de3e7dba28d2d0c3066_r.png&&&br&&b&阅读要求:&/b&&br&&ul&&li&看过并了解 D3D / OGL的矩阵变换。&br&&/li&&li&用 D3D / OGL 完成过简单程序。&/li&&/ul&&br&&b&实现说明:&/b&&br&&ul&&li&transform:实现坐标变换,和书本手册同&br&&/li&&li&vertex: 如何定义顶点?如何定义边?如何定义扫描线?如何定义渲染主体(trapezoid)?&br&&/li&&li&device: 设备,如何 projection,如何裁剪和归一化,如何切分三角形,如何顶点排序?&br&&/li&&li&trapezoid:如何生成 trape,如何生成边,如何计算步长,如何计算扫描线&br&&/li&&li&scanline:如何绘制扫描线,如何透视纠正,如何使用深度缓存,如何绘制&br&&/li&&/ul&&br&&b&基础练习:先前给学生的作业&/b&&br&&ul&&li&增加背面剔除&/li&&li&增加简单光照&/li&&li&提供更多渲染模式&/li&&li&实现二次线性差值的纹理读取&/li&&/ul&&br&&b&扩展练习:给有余力的学生&/b&&br&&ul&&li&推导并证明程序中用到的所有几何知识&/li&&li&优化顶点计算性能&br&&/li&&li&优化 draw_scanline 性能&/li&&li&从 BMP/TGA 文件加载纹理&br&&/li&&li&载入 BSP 场景并实现漫游&/li&&/ul&&br&&b&其他内容&/b&&br&&br&当年还用不了 D3D 和 OGL ,开发游戏,做图形实现软件渲染是必备技能,当年机型差,连浮点数都用不了,要用定点数来计算,矩阵稍不注意就越界了。计算透视纠正还是一个比较昂贵的工作,更多游戏使用仿射纹理绘制,只是把离屏幕近的多边形切割成更小的三角形,让人看起来没有那么明显。即便到了 Quake 年代,计算 1/z 的除法也只是四个点才算一次(经过精确计算CPU周期,绘制四个点时下一个点的 1/z刚好算完),Quake 的四个点内也还是仿射纹理绘制。。。。&br&&br&那时显卡没普及,光软件渲染器的优化就是一个无底洞,今天有了 OGL/D3D和显卡,人的精力才能充分集中在更高层次的场景组织、层次细节、动态光照等功能上。然而有空的时候,花个一周时间坐下来了解一下这部分的大概原理,推导所用到的数学模型,也能帮助大家更好的理解底层运行机制,写出更加优化的代码来。&br&&br&PS:光线跟踪版本的软件渲染,考虑光照的话,简单实现起来差不多 500 行,比这个要简单一些。各位有兴趣也可以尝试一下,就是简单渲染个立方体足够了。&br&&br&----------&br&更新:8.12 有朋友跟我说他加上了光照(支持同时N个平行光源)和二次线性插值,效果还行:&br&&img src=&/37dc745ad78c03a9d602c9_b.png& data-rawwidth=&816& data-rawheight=&638& class=&origin_image zh-lightbox-thumb& width=&816& data-original=&/37dc745ad78c03a9d602c9_r.png&&
实现个简单的固定渲染管线软渲染器不算复杂,大家都说了那么多了,我来个更短的吧,差不多700行代码就可以搞定了。之所以很多人用 D3D用的很熟,写软渲染却坑坑洼洼,主要是现在大部分讲图形的书,讲到透视投影时就是分析一下透视变换矩阵如何生成,顶点如…
&p&呃..我是一个游戏专业的大四学生...做了三年像素游戏...全都是像素游戏....只做过像素游戏...而且手里正在做的毕设也是像素游戏...&/p&&p&我也很无奈啊...我是一个程序....跟我长期合作的美术...虽然很屌...但只爱像素...情有独钟...如痴如醉...但是 像素 真的 很棒!!!很有魅力!!!&/p&&p&游戏引擎:Unity(没用过别的 cocos您还是别考虑了 其他的引擎教学资源也少)&/p&&p&里面需要注意的问题:&/p&&p&1)像素图片的导入,FilterMode要选择Point,不然图片在场景里会糊。&/p&&img src=&/v2-5efa1f0d466e8ccec3f2d_b.jpg& data-caption=&& data-rawwidth=&476& data-rawheight=&125& class=&origin_image zh-lightbox-thumb& width=&476& data-original=&/v2-5efa1f0d466e8ccec3f2d_r.jpg&&&p&2)像素风其实分为两种&/p&&img src=&/v2-6fde35c8bccbf001d2524_b.jpg& data-caption=&& data-rawwidth=&1407& data-rawheight=&1600& class=&origin_image zh-lightbox-thumb& width=&1407& data-original=&/v2-6fde35c8bccbf001d2524_r.jpg&&&p&我的美术坚持认为retro style才是真·像素。推荐你看一篇文章..我这里没翻墙软件,你可以关注一下这个博主,搜一下这篇文章。这个博主日常更新一切与像素相关的艺术。&/p&&img src=&/v2-fff607d8e2ffdcc9ff8916_b.jpg& data-caption=&& data-rawwidth=&678& data-rawheight=&489& class=&origin_image zh-lightbox-thumb& width=&678& data-original=&/v2-fff607d8e2ffdcc9ff8916_r.jpg&&&p&unity里面怎么实现这种效果,参见一下我之前提的一个问题。&/p&&p&&a href=&/question/& class=&internal&&unity 2d如何才能做到真·像素旋转?图片边缘的锯齿大小怎么才能调成和素材图片的像素格一样大?&/a&&/p&&p&下面有几个答主的答案很有参考价值。&/p&&p&就是Pixel Perfect的问题... asset store里面推荐两个插件...&/p&&img src=&/v2-5e4864e3ffcdad294ce58f7a77f38947_b.jpg& data-caption=&& data-rawwidth=&784& data-rawheight=&532& class=&origin_image zh-lightbox-thumb& width=&784& data-original=&/v2-5e4864e3ffcdad294ce58f7a77f38947_r.jpg&&&img src=&/v2-01ef8eba1b05a0aec758c3330e4bedd1_b.jpg& data-caption=&& data-rawwidth=&793& data-rawheight=&470& class=&origin_image zh-lightbox-thumb& width=&793& data-original=&/v2-01ef8eba1b05a0aec758c3330e4bedd1_r.jpg&&&p&&br&&/p&&p&3)个人觉得像素特效最难做...一般都是美术画序列帧,如果想做粒子特效的画,审美很重要。推荐steam里面的Dead ceils 那个游戏的像素特效就很棒。推荐一些像素特效插件:&/p&&img src=&/v2-24280bca8affea4f6c80d5efd1823a11_b.jpg& data-caption=&& data-rawwidth=&702& data-rawheight=&348& class=&origin_image zh-lightbox-thumb& width=&702& data-original=&/v2-24280bca8affea4f6c80d5efd1823a11_r.jpg&&&img src=&/v2-fb8be752bd508ab94ab0e332c63244e2_b.jpg& data-caption=&& data-rawwidth=&699& data-rawheight=&340& class=&origin_image zh-lightbox-thumb& width=&699& data-original=&/v2-fb8be752bd508ab94ab0e332c63244e2_r.jpg&&&p&4)画像素的工具,跟我合作的美术一般都是用PS画的..就是一个个像素格为单位画的。一个独立游戏制作人师哥向我们推荐了下面这个软件,风评很不错。不是很建议直接把非像素的美术素材直接在相机上加个什么像素滤镜来达到所谓的像素风格...我认为这是作弊...&/p&&img src=&/v2-c26ec63bb5b2d52b879e97_b.jpg& data-caption=&& data-rawwidth=&1600& data-rawheight=&1379& class=&origin_image zh-lightbox-thumb& width=&1600& data-original=&/v2-c26ec63bb5b2d52b879e97_r.jpg&&&p&MagicaVoxel 推荐一个体素工具...简单易用好上手...&/p&&p&5)大面积的像素可以用这个:&a href=&///?target=http%3A///blog/hd-index-painting-in-photoshop& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Dan Fessler | Blog&i class=&icon-external&&&/i&&/a& 适合画背景。&/p&&p&6)角色的可以参考这个:&a href=&///?target=http%3A///post//pixel-art-tutorial& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/po&/span&&span class=&invisible&&st//pixel-art-tutorial&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&7)说一下关于像素的一些教程(请合理上网)&/p&&p&&a href=&///?target=http%3A///blog/hd-index-painting-in-photoshop& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&HD Index Painting in Photoshop (by Dan Fessler)&i class=&icon-external&&&/i&&/a&&/p&&p&在PS中绘制高清索引图&/p&&p&&a href=&///?target=http%3A///post//retronator-no-bullshit-pixel-art-tutorial& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&No Bullshit Pixel Art Tutorial (by Retronator)&i class=&icon-external&&&/i&&/a&&/p&&p&绝不扯淡像素画教程&/p&&p&&a href=&///?target=http%3A//pixelation.org/index.php%3Ftopic%3D2076.msgmsg161933& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pixel Art Knowledge (by various Pixel Artists)&i class=&icon-external&&&/i&&/a&&/p&&p&像素画教程大合集&/p&&p&&a href=&///?target=http%3A///post//pixel-art-tutorial& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pixel Art Tutorial (by Derek Yu)&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///forum/forum_posts.asp%3FTID%3D11299& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pixel Art Tutorial (by Cure)&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///pixtut/pixelart.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pixel Art Tutorial (by Android Arts)&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///tutorial/index.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pixel Art Tutorials (by drbubu)&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///artwork/tutorials/rundown/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pixel Art Tutorial (by Studio Purloux)&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A//welcome.to.pixelart.academy/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pixel Art Academy (by Retronator)&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///blog/pixel-purism-process-vs-results& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pixel Purism: Process vs Results (by Dan Fessler)&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A//pixel.schlet.net/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pixelation Knowledge Repository (by Helm)&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=http%3A///pixel-tutorials/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pixel Art Tutorials (by finalbossblues)&i class=&icon-external&&&/i&&/a&&/p&&p&像素艺术知识库&/p&&p&&a href=&///?target=https%3A///watch%3Fv%3DebF1pIxLpnU& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&6 Pixel Art Drawing Techniques as Video (by GDQuest)&i class=&icon-external&&&/i&&/a&&/p&&p&像素画六大技法视频版&/p&&p&&a href=&///?target=http%3A///art/Pixel-Art-Tutorial-What-the-heck-is-pixel-art-v1-& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&What the Heck is Pixel Art (by Pix3M)&i class=&icon-external&&&/i&&/a&&/p&&p&像素画到底是什么&/p&&p&&a href=&///?target=http%3A///art/Pixel-Art-Process-& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pixel Art Process - or 8 steps to a polished result (by Cyangmou)&i class=&icon-external&&&/i&&/a&&/p&&p&像素画处理(8步美化像素画)&/p&&p&&a href=&///?target=http%3A///post//pixellighting& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Perfect Pixel Art with Specular and Bump Lighting in Unity (by Anton Kudin)&i class=&icon-external&&&/i&&/a&&/p&&p&在 Unity 中运用镜面光与凹凸贴图创建完美像素画&/p&&p&&a href=&///?target=http%3A//www.dennisbusch.de/knowhow.php& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ISOmetric Pixel Art Cheat Sheet (by Dennis Busch)&i class=&icon-external&&&/i&&/a&&/p&&p&等轴立体像素画技法小抄&/p&&p&&a href=&///?target=https%3A///playlist%3Flist%3DPLG0tvJ_jRDIVqRSjelh_uyuZpREN-T4ZF& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&How To Pixel Art Tutorial as Video (by Christopher Yabsley)&i class=&icon-external&&&/i&&/a&&/p&&p&如何绘制像素画视频版&/p&&p&&a href=&///?target=https%3A///playlist%3Flist%3DPLG0tvJ_jRDIXVXKmOFfWtN_I58SaZEDoS& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pyxel Edit Tutorial Mini Series as Video (by Christopher Yabsley)&i class=&icon-external&&&/i&&/a&&/p&&p&像素画编辑小教程视频版&/p&&p&&a href=&///?target=https%3A///watch%3Fv%3DPONe4IIYSnQ& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GIMP Pixel Art Tool Setup Tutorial as Video (by Retronator)&i class=&icon-external&&&/i&&/a&&/p&&p&GIMP 像素工具设置教程视频版&/p&&p&&a href=&///?target=http%3A///post//runcycletutorial& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Run Cycle Tutorial (by Glauber Kotaki)&i class=&icon-external&&&/i&&/a&&/p&&p&像素画多帧循环教程&/p&&p&&a href=&///?target=https%3A//simonm-/tutorial/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&A Little Guide to Pixel Art (by Simon Hunter)&i class=&icon-external&&&/i&&/a&&/p&&p&像素画迷你指南&/p&&p&&a href=&///?target=http%3A///tutorial/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Secret Weapons and Tactics for Better Pixel Art (by 2D Will Never Die)&i class=&icon-external&&&/i&&/a&&/p&&p&精进像素艺术的神器秘籍&/p&&p&8)steam上好多独立的像素游戏,enter the gungeon无论是玩法还是游戏美术上都挺不错的。steam上搜pixel一大堆,自己多参考别人的东西。至于程序部分,unity 2d教程网上有的是,像素游戏毕竟也是2d的,学习方法都差不多。引擎给封装好了很多东西...题主问用啥编程语言..其实不是很重要的...&/p&&p&9.5)&a href=&///?target=http%3A///heitao/p/6804969.html%3Futm_source%3Ditdadao%26utm_medium%3Dreferral& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Unity中提升像素字体清晰度 - 黑桃花 - 博客园&i class=&icon-external&&&/i&&/a& 这是最近遇到的一个问题及解决方法,当然最好是用bitmap这种工具做自己的像素字体...&/p&&p&9)&a href=&/p/& class=&internal&&一个程序小白的unity 2D游戏开发的反思与经验&/a& 这是大三做的一款像素游戏的经验总结...现在看来没什么参考意义... 嗯...也是个横版过关游戏...符合题主的要求...里面有宣传小片的连接...以及..找个靠谱点的策划...什么游戏的开发流程都是类似的...&/p&&p&10)像素游戏真的很棒!如果可以,想一直做下去!&/p&&img src=&/v2-d50eb08f7ad9d06c6013_b.jpg& data-caption=&& data-rawwidth=&1920& data-rawheight=&1200& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&/v2-d50eb08f7ad9d06c6013_r.jpg&&&p&附上正在做的一个多人的像素游戏...&/p&&p&有问题问吧..虽然我很渣...尽量解答...&/p&
呃..我是一个游戏专业的大四学生...做了三年像素游戏...全都是像素游戏....只做过像素游戏...而且手里正在做的毕设也是像素游戏...我也很无奈啊...我是一个程序....跟我长期合作的美术...虽然很屌...但只爱像素...情有独钟...如痴如醉...但是 像素 真的 很…
&b&历史方面:&/b&&br&&br&《大话西游》用的脚本语言是微软的JScript(JavaScript的一种方言),维护不便bug多,受系统IE版本的影响兼容性差。所以2002年网易开发《大话西游II》时,决定在客户端内嵌别的脚本语言。当时该项目技术负责人云风认为要挑不出名的语言,让做外挂的人搞不懂(《大话西游》一代被外挂《月光宝盒》搞死了),于是就选择了Lua 4.0。&br&&br&云风在九十年代就开发游戏引擎并建设个人网站(&a href=&///?target=http%3A//& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&云风工作室&i class=&icon-external&&&/i&&/a&),在游戏开发领域声望高。网易《大话西游II》是首个在市场上取得成功的国产网络游戏。所以后来国内游戏开发行业纷纷受此影响采用Lua.&br&&br&&b&技术方面:&/b&&br&&br&现在,2013年,Lua和其他流行脚本语言Python、JavaScript各分秋色:&br&&ul&&li&语言规范精简、运行时库小。其创始人称Lua是穿过针孔的语言(&a href=&///?target=http%3A//queue.acm.org/detail.cfm%3Fid%3D1983083& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Passing a Language through the Eye of a Needle&i class=&icon-external&&&/i&&/a&),他加入的任何语言特性都能用C API简单的调用。&/li&&li&易于创建受限环境,C语言一端可以控制暴露给Lua脚本的任何功能。我猜这也是《魔兽世界》的插件语言选用Lua的原因。&/li&&li&性能方面,虽然仍然比Python快,但不如V8(谷歌的JavaScript实现)。&/li&&li&&b&协程&/b&对于编写并行逻辑,非常有用。而Python、JavaScript都不支持协程,只有StacklessPython、call/cc等方言支持类似功能。&br&&/li&&li&Lua的&b&元表&/b&很有用。不过我听说Python也支持类似的功能。JavaScript的&b&原型链&/b&则只是元表功能的十分之一左右吧。&/li&&li&Lua支持&b&弱引用&/b&。对于上层逻辑用处不大。但对于底层引擎管理资源,超级有用。JavaScript不支持弱引用;Python支持。&/li&&li&Lua有个非官方实现,Luajit,性能不错。&/li&&/ul&但是回到2002年,Lua和JScript相比,优势很大。&br&&ul&&li&与C/C++交互方便。Lua的C API简洁正交,而JScript的COM接口臃肿繁杂。&/li&&li&高性能。Lua虚拟机实现简单高效,比起JScript,又快又省内存。&/li&&li&开源。云风为了防外挂,后来修改了《大话西游II》的Lua字节码格式,让官方的Lua虚拟机无法兼容《大话西游II》的Lua字节码。如果采用不开源的JScript,就不可能自己修改虚拟机和编译器了。&/li&&/ul&不过很遗憾,《大话西游II》的Lua 4.0并不支持协程。&br&&br&------------------------------------------------------------------------&br&&br&最后我想说,开发游戏并不一定要脚本语言。C/C++这类&b&低级语言&/b&写逻辑太不方便,脚本语言能弥补这个缺陷。但如果你的项目主要语言不是C/C++,而是D、Java、Scala、Haskell、Go、C#、F#等性能接近C/C++的&b&高级语言&/b&,那么你就不需要额外的脚本语言。王垠写过&a href=&///?target=http%3A//.cn/s/blog_5d90e82f0101jv17.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&什么是“脚本语言”&i class=&icon-external&&&/i&&/a&,和我的看法基本相同。&br&&br&当然还有Haxe这种既可以编译成脚本语言,也可以编译成C++的古怪语言来捣蛋。
历史方面: 《大话西游》用的脚本语言是微软的JScript(JavaScript的一种方言),维护不便bug多,受系统IE版本的影响兼容性差。所以2002年网易开发《大话西游II》时,决定在客户端内嵌别的脚本语言。当时该项目技术负责人云风认为要挑不出名的语言,让做外…
&p&作为一个像素风格的爱好者。&br&&/p&&p&分享一下自己的经验吧。&/p&&h2&&b&一、像素游戏使用的引擎&/b&&/h2&&p&&br&&/p&&p&先介绍作者感兴趣的这些作品使用的引擎吧。&/p&&img src=&/v2-d5e3fb0e14b6a66e6afd3a_b.jpg& data-caption=&& data-rawwidth=&460& data-rawheight=&215& class=&origin_image zh-lightbox-thumb& width=&460& data-original=&/v2-d5e3fb0e14b6a66e6afd3a_r.jpg&&&p&&b&StardewVally 星露谷物语 &/b&&/p&&p&由呵呵鱼发行。&/p&&p&开发者是ConcernedAPE&/p&&img src=&/v2-b2b5d01ffe61ba27ca04e5e333fe91be_b.jpg& data-caption=&& data-rawwidth=&879& data-rawheight=&192& class=&origin_image zh-lightbox-thumb& width=&879& data-original=&/v2-b2b5d01ffe61ba27ca04e5e333fe91be_r.jpg&&&p&根据开发者的答疑,游戏使用的是C# XNA。&/p&&p&&br&&/p&&p&&a href=&///?target=https%3A///r/nintendo/comments/75ag0g/im_concernedape_creator_of_stardew_valley_ask_me/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&开发者本人在Reddit上的答疑链接&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&///?target=https%3A///ConcernedApe& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ConcernedAPE的轻博客链接&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&img src=&/v2-ed7bea3c1f2ce_b.jpg& data-caption=&& data-rawwidth=&460& data-rawheight=&215& class=&origin_image zh-lightbox-thumb& width=&460& data-original=&/v2-ed7bea3c1f2ce_r.jpg&&&p&&b&Terraria&/b&也同样是使用C# XNA &/p&&p&程序是Andrew Spinks&/p&&p&可以参考GIT上泰拉瑞亚代码 &a href=&///?target=https%3A///csnxs/Terraria& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&csnxs/Terraria&i class=&icon-external&&&/i&&/a&&/p&&p&StarBound我就不多赘述了。&/p&&p&&br&&/p&&img src=&/v2-e7ef9c81c6d06f61af02_b.jpg& data-caption=&& data-rawwidth=&460& data-rawheight=&215& class=&origin_image zh-lightbox-thumb& width=&460& data-original=&/v2-e7ef9c81c6d06f61af02_r.jpg&&&p&&b&OwlBoy&/b&&/p&&p&这款游戏也是题主想要做的横版2D类型。&/p&&p&同样使用C# XNA开发&/p&&hr&&p&&b&下面介绍的这些作品都是使用GameMakerStudio开发的&/b&&/p&&p&&br&&/p&&img src=&/v2-cac7450efd770c13668b97_b.jpg& data-caption=&& data-rawwidth=&460& data-rawheight=&215& class=&origin_image zh-lightbox-thumb& width=&460& data-original=&/v2-cac7450efd770c13668b97_r.jpg&&&p&&b&HyperLightDrifter&/b&&/p&&p&使用GameMakerStudio开发&/p&&p&这款游戏在steam 以及 PlayStation上均有上架&/p&&p&&br&&/p&&p&&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&开发者的tumblr链接&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&img src=&/v2-60a61d6ce4d8bb_b.jpg& data-caption=&& data-rawwidth=&460& data-rawheight=&215& class=&origin_image zh-lightbox-thumb& width=&460& data-original=&/v2-60a61d6ce4d8bb_r.jpg&&&p&&b&undertale&/b&&/p&&p&IGN满分作品 &/p&&p&作者是 Toby Fox &/p&&p&使用GameMakerStudio开发&/p&&p&个人觉得不好玩 T_T&/p&&p&&br&&/p&&p&&br&&/p&&img src=&/v2-ce95b860d5aac55a4327a6_b.jpg& data-caption=&& data-rawwidth=&460& data-rawheight=&215& class=&origin_image zh-lightbox-thumb& width=&460& data-original=&/v2-ce95b860d5aac55a4327a6_r.jpg&&&p&&b&downwell &/b&&/p&&p&作者是 Moppin&/p&&p&使用GameMakerStudio开发&/p&&p&&a href=&///?target=http%3A///& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&另外推荐观看《Branching Paths》这个纪录片。&/p&&p&相对于《独立游戏大电影》,《Branching Paths&b&》&/b&的知名度没有那么高,但是对于从业者来说绝对值得一看。&/p&&p&&a href=&///?target=http%3A///app/494680/Branching_Paths/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&影片链接&i class=&icon-external&&&/i&&/a&&/p&&hr&&p&NintendoSwitch以及任天堂其他主机上的一些像素游戏,我不是很清楚,现在懒得去查。&/p&&img src=&/v2-281e7fbe540fbb048a88_b.jpg& data-caption=&& data-rawwidth=&460& data-rawheight=&259& class=&origin_image zh-lightbox-thumb& width=&460& data-original=&/v2-281e7fbe540fbb048a88_r.jpg&&&p&Octopath Traveler &/p&&p&开发商SquareEnix&/p&&p&使用的是虚幻4引擎 (开发团队是过去的勇气默示录开发团队)&/p&&p&这款游戏应该会在NS上首发,体验版很惊艳。&/p&&hr&&p&下面着重介绍一下国产的像素游戏。&/p&&p&如果题主有心的话,可以直接联系上开发者。&/p&&p&&br&&/p&&img src=&/v2-e9874338fdbec411592ec_b.jpg& data-caption=&& data-rawwidth=&460& data-rawheight=&215& class=&origin_image zh-lightbox-thumb& width=&460& data-original=&/v2-e9874338fdbec411592ec_r.jpg&&&p&&b&CatchMe&/b&&/p&&p&作者是 &a class=&member_mention& href=&///people/941015febcf0bf4903d3& data-hash=&941015febcf0bf4903d3& data-hovercard=&p$b$941015febcf0bf4903d3&&@玫瑰狗&/a& &a class=&member_mention& href=&///people/3cb531f5e0a3cb28c58f1c406d5d51e0& data-hash=&3cb531f5e0a3cb28c58f1c406d5d51e0& data-hovercard=&p$b$3cb531f5e0a3cb28c58f1c406d5d51e0&&@绯色de弦月&/a& &/p&&p&使用的是UNITY引擎&/p&&p&&a href=&///?target=http%3A///app/421030/Catch_Me/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Steam链接&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&&br&&/p&&img src=&/v2-4aa2b8d5393dfb48ba729c_b.jpg& data-caption=&& data-rawwidth=&520& data-rawheight=&293& class=&origin_image zh-lightbox-thumb& width=&520& data-original=&/v2-4aa2b8d5393dfb48ba729c_r.jpg&&&p&&b&元气骑士&/b&&/p&&p&作者是 凉屋游戏 &a class=&member_mention& href=&///people/2ef5021660bddecc12e9c67cc118d5b0& data-hash=&2ef5021660bddecc12e9c67cc118d5b0& data-hovercard=&p$b$2ef5021660bddecc12e9c67cc118d5b0&&@一张钞票&/a& &/p&&p&使用的是Unity引擎&/p&&p&&a href=&///?target=https%3A///app/34751& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TapTap链接&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&img src=&/v2-10d066ee651b4091ecebef5ae0d7da9d_b.jpg& data-caption=&& data-rawwidth=&497& data-rawheight=&260& class=&origin_image zh-lightbox-thumb& width=&497& data-original=&/v2-10d066ee651b4091ecebef5ae0d7da9d_r.jpg&&&p&&b&锻冶屋英雄谭&/b&&/p&&p&作者是 &a class=&member_mention& href=&///people/7cca4ffcac5aecdf36633abc& data-hash=&7cca4ffcac5aecdf36633abc& data-hovercard=&p$b$7cca4ffcac5aecdf36633abc&&@拼命玩三郎&/a& &/p&&p&引擎未知(希望可以告知补充 T_T)&/p&&p&&a href=&///?target=https%3A///app/11836& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TapTap链接&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&&br&&/p&&img src=&/v2-64c6cafa5_b.jpg& data-caption=&& data-rawwidth=&460& data-rawheight=&215& class=&origin_image zh-lightbox-thumb& width=&460& data-original=&/v2-64c6cafa5_r.jpg&&&p&&b&武器店物语&/b&&/p&&p&作者是 &a class=&member_mention& href=&///people/null& data-hash=&null& data-hovercard=&p$b$null&&@timchen&/a& &/p&&p&使用的是UNITY引擎&/p&&p&&a href=&///?target=http%3A///app/599460/Weapon_Shop_Fantasy/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Steam链接&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&img src=&/v2-bfc1c64ad4147c17dbcc95aad4eb85c3_b.jpg& data-caption=&& data-rawwidth=&460& data-rawheight=&215& class=&origin_image zh-lightbox-thumb& width=&460& data-original=&/v2-bfc1c64ad4147c17dbcc95aad4eb85c3_r.jpg&&&p&To The Moon &/p&&p&作者是 高瞰(加拿大华人)&/p&&p&使用的是rpgmaker&/p&&p&&a href=&///?target=https%3A///app/12547& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TapTap链接&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&当然还有很多国人开发的像素游戏,如有忽略还请见谅。&/p&&p&&br&&/p&&p&引擎介绍用了很多篇幅,主要是因为这一部分确实很重要。&/p&&p&&b&建议题主根据自己的能力选择合适的引擎。&/b&&/p&&p&个人推荐使用UNITY引擎,其次推荐GameMakerStudio。&/p&&p&我自己在用的就是UNITY引擎。&/p&&img src=&/v2-5a4beefca1eae7b99de895f_b.jpg& data-caption=&& data-rawwidth=&358& data-rawheight=&530& class=&content_image& width=&358&&&p&&br&&/p&&p&&br&&/p&&p&我在开发中的小游戏&/p&&hr&&h2&二、像素游戏开发经验&/h2&&p&&br&&/p&&p&绘图工具的话,我使用的是PhotoShop&/p&&p&其他工具的话推荐Aseprite&/p&&p&&br&&/p&&p&介绍一些PS像素资源处理的基础知识吧。&/p&&img src=&/v2-aedfa5da62af1f4a55df8b4_b.jpg& data-caption=&& data-rawwidth=&592& data-rawheight=&220& class=&origin_image zh-lightbox-thumb& width=&592& data-original=&/v2-aedfa5da62af1f4a55df8b4_r.jpg&&&img src=&/v2-7eae0a0e7b6eeaf8e89ebe6_b.jpg& data-caption=&& data-rawwidth=&422& data-rawheight=&219& class=&origin_image zh-lightbox-thumb& width=&422& data-original=&/v2-7eae0a0e7b6eeaf8e89ebe6_r.jpg&&&p&开始所有工作之前,首选项里把图像插值改为“邻近”,标尺改为“像素”,文字改为“点”。&/p&&p&&br&&/p&&img src=&/v2-a4b2c08561edf31f4ec3ab3_b.jpg& data-caption=&& data-rawwidth=&200& data-rawheight=&125& class=&content_image& width=&200&&&p&在放大像素资源的时候记得使用“邻近”&/p&&p&&br&&/p&&img src=&/v2-1f932a5bee7d88c6c762842d_b.jpg& data-caption=&& data-rawwidth=&731& data-rawheight=&342& class=&origin_image zh-lightbox-thumb& width=&731& data-original=&/v2-1f932a5bee7d88c6c762842d_r.jpg&&&p&效果示意&/p&&p&不使用邻近插值放大会导致资源“糊&掉&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&字体相关&/b&&/p&&img src=&/v2-cb55e492c_b.jpg& data-caption=&& data-rawwidth=&237& data-rawheight=&284& class=&content_image& width=&237&&&p&上上图中的字体是使用宋体12点&/p&&p&其他像素字体的话推荐&/p&&img src=&/v2-c9f8bf1cba102fa_b.jpg& data-caption=&& data-rawwidth=&321& data-rawheight=&23& class=&content_image& width=&321&&&img src=&/v2-812a418af4d826e9c3657c_b.jpg& data-caption=&& data-rawwidth=&303& data-rawheight=&43& class=&content_image& width=&303&&&p&不过一般宋体就够用了,实在不行可以自己点。&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&像素画教程&/b&&/p&&img src=&/v2-d81ad02d2a134e50700de0_b.jpg& data-caption=&& data-rawwidth=&512& data-rawheight=&512& class=&origin_image zh-lightbox-thumb& width=&512& data-original=&/v2-d81ad02d2a134e50700de0_r.jpg&&&p&&br&&/p&&p&&br&&/p&&img src=&/v2-5bd23da0587bca7b950709_b.jpg& data-caption=&& data-rawwidth=&512& data-rawheight=&512& class=&origin_image zh-lightbox-thumb& width=&512& data-original=&/v2-5bd23da0587bca7b950709_r.jpg&&&p&&br&&/p&&p&&br&&/p&&p&推荐看这位大神的&a href=&///?target=https%3A///saint11& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&轻博客(需要科学上网)&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&&b&UNITY使用相关&/b&&/p&&img src=&/v2-f1ebb9e79d7287d78ecc1e65b818351e_b.jpg& data-caption=&& data-rawwidth=&368& data-rawheight=&154& class=&content_image& width=&368&&&p&Unity资源导入后 记得勾选 point&/p&&p&Point对应 邻近插值&/p&&p&Bilinear对应 两次立方&/p&&p&&br&&/p&&img src=&/v2-1ece1e720d7b82ae5cee3a_b.jpg& data-caption=&& data-rawwidth=&494& data-rawheight=&229& class=&origin_image zh-lightbox-thumb& width=&494& data-original=&/v2-1ece1e720d7b82ae5cee3a_r.jpg&&&p&左侧资源FilterMode为Point&/p&&p&右侧资源FilterMode为Bilinear&/p&&p&&br&&/p&&p&简单说了一下暂时能想到的像素游戏会遇到的问题,如果还有别的问题也可以留言回复,我尽量解答。&/p&&p&&br&&/p&&p&例行附图&/p&&img src=&/v2-e01a63d8ffa92a473aa8_b.jpg& data-caption=&& data-rawwidth=&120& data-rawheight=&120& class=&content_image& width=&120&&&p&&br&&/p&&hr&&p&补充一些我喜欢的像素艺术吧。&/p&&img src=&/v2-9fcf9bfab33eb_b.jpg& data-caption=&& data-rawwidth=&320& data-rawheight=&193& class=&content_image& width=&320&&&p&&br&&/p&&img src=&/v2-fd50942dfc350ee0d7b9a3fa71459aab_b.jpg& data-caption=&& data-rawwidth=&414& data-rawheight=&350& class=&content_image& width=&414&&&p&&br&&/p&&img src=&/v2-dd1f59d7f5_b.jpg& data-caption=&& data-rawwidth=&680& data-rawheight=&270& class=&origin_image zh-lightbox-thumb& width=&680& data-original=&/v2-dd1f59d7f5_r.jpg&&&p&&br&&/p&&img src=&/v2-94e6fefe144_b.jpg& data-caption=&& data-rawwidth=&540& data-rawheight=&320& class=&origin_image zh-lightbox-thumb& width=&540& data-original=&/v2-94e6fefe144_r.jpg&&&img src=&/v2-6c45b48c95c8c21b6fcb92_b.jpg& data-caption=&& data-rawwidth=&560& data-rawheight=&280& class=&origin_image zh-lightbox-thumb& width=&560& data-original=&/v2-6c45b48c95c8c21b6fcb92_r.jpg&&&img src=&/v2-ffc7092aecb42168eed0348_b.jpg& data-caption=&& data-rawwidth=&500& data-rawheight=&288& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&/v2-ffc7092aecb42168eed0348_r.jpg&&&img src=&/v2-39fe67268cffbdc980968_b.jpg& data-caption=&& data-rawwidth=&500& data-rawheight=&291& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&/v2-39fe67268cffbdc980968_r.jpg&&&img src=&/v2-e9bc71acbeb_b.jpg& data-caption=&& data-rawwidth=&500& data-rawheight=&288& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&/v2-e9bc71acbeb_r.jpg&&&p&&br&&/p&&p&希望能有更多的人感受到像素风格的魅力&/p&&hr&&p&&b&最后,欢迎关注我的专栏。&/b&&/p&&p&&a href=&/eighteen& class=&internal&&十八的游戏开发笔记&/a&&/p&&p&&a href=&/p/?refer=eighteen& class=&internal&&游戏策划眼中的阴阳师&/a&&/p&&p&&a href=&/p/?group_id=095104& class=&internal&&游戏是什么?这个问题真的很重要吗?&/a&&/p&
作为一个像素风格的爱好者。 分享一下自己的经验吧。一、像素游戏使用的引擎 先介绍作者感兴趣的这些作品使用的引擎吧。StardewVally 星露谷物语 由呵呵鱼发行。开发者是ConcernedAPE根据开发者的答疑,游戏使用的是C# XNA。
吐槽第一名答案, &a data-hash=&0effe9e423faad125fa9c6a& href=&///people/0effe9e423faad125fa9c6a& class=&member_mention& data-editable=&true& data-title=&@Vinjn张静& data-tip=&p$b$0effe9e423faad125fa9c6a& data-hovercard=&p$b$0effe9e423faad125fa9c6a&&@Vinjn张静&/a& 回答的 $1 gesture recognizer 是比较好的解法。&br&&br&洒家也有一个类似的算法,借鉴了原始手写ocr的思路来实现的。其实是写在 $1 gesture recognizer 之前的,但没有 $1 gesture recognizer 归纳得好,作者jacob还是我偶像。&br&&br&&a href=&///?target=http%3A//haojian.github.io/gesture_recognition/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Realtime Gesture recognition&i class=&icon-external&&&/i&&/a&&br&&br&把所有的笔画定义了个8个方向,然后将B的笔画可以分解成一个字符串。然后当人在触摸屏上画出一个符号时,也将它分解成8个方向的字符串,最后比较两个字符串的距离就能判断出和不同符号的近似度。&br&&img src=&/5c8f99d6dfe803d783e215e131cb9f10_b.jpg& data-rawwidth=&527& data-rawheight=&167& class=&origin_image zh-lightbox-thumb& width=&527& data-original=&/5c8f99d6dfe803d783e215e131cb9f10_r.jpg&&&br&实现起来也很简单,第一步去噪,因为不同触摸屏的采样频率不同。&br&&img src=&/cd33fdcf5a5f58b1c15ad0ffbf44300a_b.jpg& data-rawwidth=&376& data-rawheight=&188& class=&content_image& width=&376&&&br&&br&第二步把去噪后的数据转换成方向序列,把之前得到的点换成方向序列,并把方向序列归纳到之前定义的8个方向中去。&br&&img src=&/cd33fdcf5a5f58b1c15ad0ffbf44300a_b.jpg& data-rawwidth=&376& data-rawheight=&188& class=&content_image& width=&376&&&br&第三步把连续一致的方向合并。&br&&img src=&/dd4e09658bfd902a0b72cb_b.jpg& data-rawwidth=&263& data-rawheight=&156& class=&content_image& width=&263&&&br&第四步把小片段的移动略去,最后就能得出其实是画了一个凹的形状。&br&&img src=&/e8f5cd42c_b.jpg& data-rawwidth=&470& data-rawheight=&170& class=&origin_image zh-lightbox-thumb& width=&470& data-original=&/e8f5cd42c_r.jpg&&&br&这个算法的厉害之处是可以实时识别,画到一半也能判断出来。&br&&a href=&///?target=http%3A//haojian.github.io/gesture_recognition/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Realtime Gesture recognition&i class=&icon-external&&&/i&&/a& 源代码和demo都在上面了。&br&&br&&br&&br&===============&br&吐槽时间。。。。&br&刚写完论文累死了,来吐槽。。。。&br&原来大家都觉得第一名不靠谱,怎么木有人把我顶上去!我眼红着那300多票呢!&br&&br&我来告诉你为什么第一名不靠谱,&br&&br&首先ocr拿来做gesture recognition是不对滴!&br&ocr是一个比gesture recognition更难的问题,因为ocr得到的是一张图片,所有点并没有时间戳,而手势识别时,每一下移动是有时间戳的,所以是知道“怎么画出来”这个额外信息的。&br&&br&其次ocr不是这么解释的。&br&ocr问题的重点是怎么选择特征,比如知名的uci 数据集就有以下这些特征量:&br&&div class=&highlight&&&pre&&code class=&language-text&&
1. lettr capital letter (26 values from A to Z)
2. x-box horizontal position of box (integer)
3. y-box vertical position of box (integer)
4. width width of box
height of box
6. onpix total # on pixels
7. x-bar mean x of on pixels in box (integer)
8. y-bar mean y of on pixels in box (integer)
9. x2bar mean x variance
10. y2bar mean y variance
11. xybar mean x y correlation
12. x2ybr mean of x * x * y
13. xy2br mean of x * y * y
14. x-ege mean edge count left to right (integer)
15. xegvy correlation of x-ege with y (integer)
16. y-ege mean edge count bottom to top (integer)
17. yegvx correlation of y-ege with x (integer)
&/code&&/pre&&/div&&br&最后贝叶斯讲得也不好。&br&&br&感觉挑小朋友刺也挺不要脸的,其实我就是眼红那300多票。。。
吐槽第一名答案,
回答的 $1 gesture recognizer 是比较好的解法。 洒家也有一个类似的算法,借鉴了原始手写ocr的思路来实现的。其实是写在 $1 gesture recognizer 之前的,但没有 $1 gesture recognizer 归纳得好,作者jacob还是我偶像。
&a href=&///?target=http%3A///& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&/&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&game programning patterns能帮助你。amazon五星好评,web版免费,厚道良心,亚马逊5星好评。&br&&br&&img data-rawwidth=&750& data-rawheight=&1334& src=&/c743ec674e4c0176d60e_b.png& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&/c743ec674e4c0176d60e_r.png&&
game programning patterns能帮助你。amazon五星好评,web版免费,厚道良心,

我要回帖

更多关于 collision 的文章

 

随机推荐