{"id":370414,"date":"2024-05-21T04:24:38","date_gmt":"2024-05-21T04:24:38","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=370414"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=370414","title":{"rendered":"<span>\u041f\u0435\u0440\u0432\u044b\u0439 \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u044b\u0439 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439 GPU: \u043a\u0430\u043a\u0438\u043c \u0431\u044b\u043b PowerVR MBX Lite? \u041f\u0438\u0448\u0435\u043c \u0438\u0433\u0440\u0443-\u0434\u0435\u043c\u043a\u0443 \u043f\u0440\u043e \u00ab\u0436\u0438\u0433\u0443\u043b\u0438\u00bb \u0441 \u043d\u0443\u043b\u044f<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/7f6\/90b\/efe\/7f690befe380a72180be78f2e33e150e.png\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/7f6\/90b\/efe\/7f690befe380a72180be78f2e33e150e.png\"\/><\/div>\n<p>  \u041f\u043e\u0436\u0430\u043b\u0443\u0439, \u043c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u0432\u0430\u0441 \u043f\u043e\u043c\u043d\u044f\u0442, \u043a\u0430\u043a\u0438\u043c\u0438 \u0431\u044b\u043b\u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0438\u0433\u0440\u044b \u0434\u043e \u0438 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0445\u043e\u0434\u0430 \u043f\u0435\u0440\u0432\u043e\u0433\u043e <a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/708922\/\">iPhone<\/a>. \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 2000-\u0445 \u0433\u043e\u0434\u043e\u0432, \u0435\u0449\u0451 \u0434\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u044f\u0431\u043b\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0430, \u0438\u0433\u0440\u044b \u0434\u043b\u044f \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0431\u044b\u043b\u0438 \u0432\u0435\u0441\u044c\u043c\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438, \u043d\u043e \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u043c\u0438 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \u0446\u0435\u043b\u043e\u043c. \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 AppStore \u0432 2008 \u0433\u043e\u0434\u0443, \u043d\u0430 iPhone \u043d\u0430\u0447\u0430\u043b\u0438 \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u0440\u0430\u0441\u043e\u0447\u043d\u044b\u0435, \u043d\u0435\u0432\u0438\u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u043d\u043d\u0435\u0435 \u043f\u043e \u0443\u0440\u043e\u0432\u043d\u044e \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0435 2D \u0438 3D \u0438\u0433\u0440\u044b. \u041d\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u0438\u0445 \u0438\u0433\u0440 \u2014 \u043e\u0442\u043d\u044e\u0434\u044c \u043d\u0435 \u0437\u0430\u0441\u043b\u0443\u0433\u0430 Apple, \u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u043b\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 <b>PowerVR<\/b> (\u043f\u043e\u0434\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 Imagination Tech), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043c\u043e\u0433\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0432\u0438\u0434\u0435\u043e\u0447\u0438\u043f\u0430 Dreamcast \u0438 \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0430\u0441\u0441\u043e\u0432\u044b\u0445 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 3D-\u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u0435\u0439, \u0438\u043c\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u2014 <b>PowerVR MBX<\/b>! \u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438, \u0447\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u043b\u044e\u0431\u043e\u0439 \u0434\u0435\u0448\u0435\u0432\u044b\u0439 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a\u0443 \u0443\u0440\u043e\u0432\u043d\u044f PS3 \u0432 1080p, \u0430 \u0442\u043e \u0438 \u0432\u044b\u0448\u0435, \u043d\u043e \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0434\u0430\u0436\u0435 \u0443\u0440\u043e\u0432\u0435\u043d\u044c PS2 \u0431\u044b\u043b \u0440\u043e\u0441\u043a\u043e\u0448\u044c\u044e\u2026 \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0441 \u0432\u0430\u043c\u0438: \u0443\u0437\u043d\u0430\u0435\u043c \u043f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e-\u0443\u0441\u043a\u043e\u0440\u0435\u043d\u043d\u043e\u0439 3D-\u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430\u0445, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0430\u043a\u0443\u044e \u0444\u0438\u0440\u043c\u0435\u043d\u043d\u0443\u044e \u0444\u0438\u0448\u043a\u0443 PowerVR, \u043a\u0430\u043a \u0442\u0430\u0439\u043b\u043e\u0432\u044b\u0439 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433, \u0430 \u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u044b\u0439 \u041a\u041f\u041a <b>Dell Axim X51v<\/b> \u0441 MBX \u043d\u0430 \u0431\u043e\u0440\u0442\u0443, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043d\u0430\u043f\u0438\u0448\u0435\u043c 3D-\u0438\u0433\u0440\u0443 \u00ab\u043f\u0440\u043e \u0436\u0438\u0433\u0443\u043b\u0438\u00bb \u0441 \u043d\u0443\u043b\u044f! \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e? \u0422\u043e\u0433\u0434\u0430 \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0442!<a name=\"habracut\"><\/a><\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u041c\u043e\u0431\u0438\u043b\u044c\u043d\u0430\u044f 3D-\u0433\u0440\u0430\u0444\u0438\u043a\u0430. \u041d\u0430\u0447\u0430\u043b\u043e<\/font><\/h2>\n<p>  \u041f\u043e\u0436\u0430\u043b\u0443\u0439, 3D-\u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u043d\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0435\u0449\u0451 \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430 2000-\u0445 \u0433\u043e\u0434\u043e\u0432. \u041a \u0442\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443, \u043a\u0430\u043a \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 Java-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u044b\u0439 \u0440\u044b\u043d\u043e\u043a \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0438\u0433\u0440. \u0415\u0449\u0451 \u0434\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 jar-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043b\u044e\u0434\u0438 \u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0440\u0435\u043a\u043e\u0440\u0434\u044b \u0432 \u00ab\u0417\u043c\u0435\u0439\u043a\u0435\u00bb \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430\u0445 Nokia, \u0442\u0430\u0441\u043a\u0430\u043b\u0438 \u044f\u0449\u0438\u043a\u0438 \u0432 \u00ab\u0421\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u0435\u00bb \u043d\u0430 Siemens \u0438 \u0438\u0433\u0440\u0430\u043b\u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0438\u0433\u0440\u044b \u043d\u0430 \u0434\u0435\u0432\u0430\u0439\u0441\u0430\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0431\u0440\u0435\u043d\u0434\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u044b\u043b\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0438\u0433\u0440\u044b \u043d\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430\u0445 \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0441\u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u043d\u0435\u043c\u0430\u043b\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u0440\u0442\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/3fb\/e01\/6ce\/3fbe016ce81a15bb7e705b5b3e0e7750.png\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/3fb\/e01\/6ce\/3fbe016ce81a15bb7e705b5b3e0e7750.png\"\/><\/div>\n<p>  \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 J2ME \u0434\u0430\u043b\u043e \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u0442\u043e\u043b\u0447\u043e\u043a \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0433\u0435\u0439\u043c\u0438\u043d\u0433\u0430. \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u043b\u0438 \u0438 \u0434\u043e\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u0432 \u043d\u0435\u0451 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 API-\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u0421\u041c\u0421 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u0432 WAP-\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442. \u0421\u0430\u043c\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 J2ME \u0431\u044b\u043b\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u0438\u043c\u0435\u043b\u0430 \u043d\u0438\u0437\u043a\u0438\u0439 \u043f\u043e\u0440\u043e\u0433 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043b\u044e\u0434\u0435\u0439, \u0438\u043c\u0435\u0432\u0448\u0438\u0445 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043e\u043f\u044b\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u043e \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u0438\u0441\u0430\u043b\u0438 \u043a\u043e\u0434 \u0438 \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0438\u0433\u0440! \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443, \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0442\u043d\u0438 \u0438\u0433\u0440, \u043c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043f\u043e\u043c\u043d\u044f\u0442 \u0438 \u043b\u044e\u0431\u044f\u0442: \u044d\u0442\u043e \u0438 \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u044b\u0439 \u00ab\u043c\u044f\u0447\u0438\u043a\u00bb Bounce, \u0438 \u00ab\u0437\u0430\u0439\u0447\u0438\u043a \u0441 \u043c\u043e\u0440\u043a\u043e\u0432\u043a\u0430\u043c\u0438\u00bb Bobby Carrot, \u0438 \u0432\u0435\u0441\u044c\u043c\u0430 \u043a\u0440\u0443\u0442\u043e\u0439 Gish, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u0440\u043e\u0432 \u043f\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c \u0444\u0438\u043b\u044c\u043c\u0430\u043c \u0438 \u00ab\u0431\u043e\u043b\u044c\u0448\u0438\u043c\u00bb \u0438\u0433\u0440\u0430\u043c!<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/6fa\/d81\/7d3\/6fad817d3a9aa51402791fb18b85fde7.jpg\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/6fa\/d81\/7d3\/6fad817d3a9aa51402791fb18b85fde7.jpg\" data-blurred=\"true\"\/><\/div>\n<p>  \u0412 2003 \u0433\u043e\u0434\u0443 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/786212\/\">Nokia N-Gage<\/a> \u2014 \u043f\u0435\u0440\u0432\u044b\u0439 \u043c\u0430\u0441\u0441\u043e\u0432\u044b\u0439 \u0442\u0435\u043b\u0435\u0444\u043e\u043d, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0433\u0435\u0439\u043c\u0438\u043d\u0433, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e Java-\u0438\u0433\u0440\u044b, \u043d\u043e \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 Symbian-\u0438\u0433\u0440\u044b \u0441 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u0440\u0443\u0442\u043e\u0439 3D-\u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0439! \u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 \u0442\u043e\u043c \u0436\u0435 2003 \u0433\u043e\u0434\u0443, \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Java \u0432\u044b\u0448\u043b\u043e \u0441\u0440\u0430\u0437\u0443 \u0434\u0432\u0430 API-\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0441\u0438\u043c\u043f\u0430\u0442\u0438\u0447\u043d\u043e\u0439 3D-\u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0434\u0430\u0436\u0435 \u0432 \u0441\u0430\u043c\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u0435 \u0438 \u0431\u044e\u0434\u0436\u0435\u0442\u043d\u044b\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u044b: <b>Mobile 3D Graphics<\/b> (M3G, \u0431\u044b\u043b\u0430 \u043f\u043e\u0447\u0442\u0438 \u0432\u0435\u0437\u0434\u0435) \u0438 <b>Mascot Capsule<\/b> (\u044d\u0442\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0431\u044b\u043b\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 Sony Ericsson \u0438 Motorola). \u0418\u043c\u0435\u043d\u043d\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u0438\u043c API, \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u0442\u0430\u043a\u0438\u0435 \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u044b\u0435 \u0438\u0433\u0440\u044b, \u043a\u0430\u043a V-Rally, Galaxy on Fire, Deep3D \u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435! \u041d\u043e \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u044d\u0442\u0438 API \u0431\u044b\u043b\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0438\u0437-\u0437\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u0440\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 \u0431\u0435\u0437 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e 3D-\u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u044f \u0438 \u0432\u0435\u0441\u044c\u043c\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0435. \u0411\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0443 \u2014 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u043e\u0444\u0442\u0440\u0435\u043d\u0434\u0435\u0440\u0430 \u043f\u0435\u0440\u0432\u043e\u0439 \u043a\u0432\u0430\u043a\u0438 \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c Pentium! \u041a\u0441\u0442\u0430\u0442\u0438, \u043f\u0440\u043e 3D \u043d\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430\u0445 \u044f \u043f\u0438\u0441\u0430\u043b <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/787548\/\">\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e<\/a>, \u0442\u0430\u043c \u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u043f\u0438\u0448\u0435\u043c 3D-\u0431\u0440\u043e\u0434\u0438\u043b\u043a\u0443 \u0434\u043b\u044f Sony Ericsson!<\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/65b0d86f4c5bea9d8af09744\" data-style=\"\" id=\"65b0d86f4c5bea9d8af09744\" width=\"\"><\/div>\n<\/div>\n<p>  \u041d\u043e \u043f\u043e\u043c\u0438\u043c\u043e \u043a\u043d\u043e\u043f\u043e\u0447\u043d\u044b\u0445 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0441\u0435\u0433\u043c\u0435\u043d\u0442 High-end \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0439\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0438 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0437\u0430 \u043d\u0435\u043c\u0430\u043b\u044b\u0435 \u0434\u0435\u043d\u044c\u0433\u0438. \u0418 \u0440\u0435\u0447\u044c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u043e \u041a\u041f\u041a! \u0414\u0435\u0432\u0430\u0439\u0441\u044b, \u0440\u0430\u0431\u043e\u0442\u0430\u0432\u0448\u0438\u0435 \u043d\u0430 \u0431\u0430\u0437\u0435 \u0448\u0443\u0441\u0442\u0440\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 Intel PXA \u0438 Samsung S3C \u0441 Windows Mobile \u043d\u0430 \u0431\u043e\u0440\u0442\u0443 \u0431\u044b\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u0438\u0433\u0440\u2026 \u043d\u043e \u043a\u0430\u043a-\u0442\u043e \u043d\u0435 \u0437\u0430\u0434\u0430\u043b\u043e\u0441\u044c \u0438\u0437-\u0437\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f. \u041d\u043e \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/743934\/\">Intel<\/a> (\u0438\u0440\u043e\u043d\u0438\u0447\u043d\u043e, \u043d\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 ARM-\u0447\u0438\u043f\u0441\u0435\u0442\u043e\u0432 \u0434\u043b\u044f \u041a\u041f\u041a \u0432 \u0442\u0435 \u0433\u043e\u0434\u044b), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0436\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0430\u0441\u044c \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043d\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 GMA \u0438 PowerVR \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0444\u0435\u0440\u0435 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0441\u0442\u0430\u043b\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0435\u043e\u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u044f <b>2700G<\/b>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u043b \u0438\u0437 \u0441\u0435\u0431\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e 3D GPU PowerVR MBX Lite, \u043d\u043e \u0438 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u0432\u0438\u0434\u0435\u043e, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0448\u0438\u0439 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0438\u0434\u0435\u043e \u0432 \u0432\u044b\u0441\u043e\u043a\u043e\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435! MBX Lite \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0434\u0430\u0436\u0435 Quake 3 \u0432 640&#215;480 (!), \u043f\u0443\u0441\u0442\u044c \u0438 \u0432 10-15 FPS\u2026 \u0415\u0449\u0451 \u0437\u0430 5 \u043b\u0435\u0442 \u0434\u043e \u044d\u0442\u043e\u0433\u043e, \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0441\u0435 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043d\u044b\u0435 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b \u043c\u043e\u0433\u043b\u0438 \u0432\u044b\u0434\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 30 FPS \u0432 800&#215;600!<\/p>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0432 2004 \u0433\u043e\u0434\u0443 \u0443\u0436\u0435 \u0432\u044b\u0448\u0435\u043b PSP, \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0432\u0448\u0438\u0439 \u043d\u043e\u0432\u0443\u044e \u043f\u043b\u0430\u043d\u043a\u0443 \u0443\u0440\u043e\u0432\u043d\u044f 3D-\u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0434\u043b\u044f \u043f\u043e\u0440\u0442\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0433\u0435\u0439\u043c\u0438\u043d\u0433\u0430, \u043e\u0434\u043d\u0430\u043a\u043e \u0434\u043b\u044f \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u043e\u0432 \u0438 \u041a\u041f\u041a, \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0433\u0440\u0430\u0444\u0438\u043a\u0438, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c 3D-\u0438\u0433\u0440 \u043d\u0430 MBX Lite \u0431\u044b\u043b \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u043c\u044b\u0441\u043b\u0438\u043c\u044b\u043c! \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u044b\u0445 \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0441 2700G, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0441\u0442\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0435\u0448\u0435\u0432\u043e \u0438 \u0441\u0435\u0439\u0447\u0430\u0441, \u0431\u044b\u043b \u041a\u041f\u041a <b>Dell Axim X51v<\/b>, \u0444\u043b\u0430\u0433\u043c\u0430\u043d\u0441\u043a\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0441 VGA-\u0434\u0438\u0441\u043f\u043b\u0435\u0435\u043c \u0442\u0435\u0445 \u043b\u0435\u0442. \u041d\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e PowerVR \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0432 \u044d\u0442\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438. \u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e NVidia \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0438 GoForce, \u043a\u0440\u0430\u0439\u043d\u0435 \u0440\u0435\u0434\u043a\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0432 \u00ab\u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u043c\u00bb \u0432\u0438\u0434\u0435 (NVidia \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b\u0430 \u0434\u0435\u0448\u0435\u0432\u043b\u0435 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0438\u0434\u0435\u043e-\u0434\u0435\u043a\u043e\u0434\u0435\u0440 \u0441 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c 3D-\u0447\u0430\u0441\u0442\u0438, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0432 Toshiba Portege G900) \u0438 ATI Imageon, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 Adreno \u043d\u0430 \u0440\u0430\u043d\u043d\u0438\u0445 Android-\u0447\u0438\u043f\u0441\u0435\u0442\u0430\u0445 Qualcomm (Adreno \u2014 \u0430\u043d\u0430\u0433\u0440\u0430\u043c\u043c\u0430 Radeon :)).<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/635\/a1a\/950\/635a1a9500871b748dfe605e9ca59071.png\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/635\/a1a\/950\/635a1a9500871b748dfe605e9ca59071.png\"\/><\/div>\n<p>  \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0440\u0435\u0448\u0435\u043d\u0438\u0435 PowerVR \u0431\u044b\u043b\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0430\u0441\u0441\u043e\u0432\u044b\u043c: \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u043d\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0447\u0438\u043f (\u0447\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0440\u043e\u0436\u0435), \u043a\u0430\u043a \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u044b, \u0430 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u0434\u0440\u0443\u0433\u0438\u043c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u043c \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 IP-\u044f\u0434\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0438 \u0447\u0438\u043f\u043e\u0432 \u043c\u043e\u0433\u043b\u0438 \u0441\u0438\u043d\u0442\u0435\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u0432\u043e\u0438\u0445 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0447\u0438\u043f\u0441\u0435\u0442\u0430\u0445, \u0438\u043b\u0438, \u0441\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u0445, \u043a\u0430\u043a \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 <b>2700G<\/b>. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443, MBX \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0432 \u0447\u0438\u043f\u0441\u0435\u0442\u0435 TI OMAP 2430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u0432 \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u044b\u0445 <b>Nokia N93i<\/b> \u0438 <b>Nokia N95<\/b>, <b>Samsung INNOV8<\/b>, <b>Asus Lamborghini<\/b>, <b>Nokia E90<\/b> \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0440\u0443\u0433\u0438\u0445. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, PowerVR MBX \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 <b>Samsung S5L8900<\/b>, \u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f iPhone 2G \u0438 3G! \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443, \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043f\u0435\u0440\u0432\u044b\u0445 \u043c\u0430\u0441\u0441\u043e\u0432\u044b\u0445 3D GPU \u0432 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430\u0445!<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/2ba\/958\/e21\/2ba958e21862c47a02483a54a3e60dd2.jpg\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/2ba\/958\/e21\/2ba958e21862c47a02483a54a3e60dd2.jpg\" data-blurred=\"true\"\/><\/div>\n<p>  <i><font color=\"#4682B4\">\u041e\u0434\u043d\u0430 \u0438\u0437 \u0438\u0433\u0440 \u0434\u043b\u044f iPhone 2G \u0438 N95 \u2014 Assasins Creed<\/font><\/i><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/510\/d62\/abf\/510d62abf6cbf26bdff3c14b590f4256.jpg\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/510\/d62\/abf\/510d62abf6cbf26bdff3c14b590f4256.jpg\" data-blurred=\"true\"\/><\/div>\n<p>  <i><font color=\"#4682B4\">MBX \u0442\u044f\u043d\u0443\u043b \u0434\u0430\u0436\u0435 \u00abGTA\u00bb \u2014 Gangstar West Coast Hustle!<\/font><\/i><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/fa0\/b6b\/ec0\/fa0b6bec05465fc0dd59529ae3d0b981.jpg\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/fa0\/b6b\/ec0\/fa0b6bec05465fc0dd59529ae3d0b981.jpg\" data-blurred=\"true\"\/><\/div>\n<p>  <i><font color=\"#4682B4\">\u0418 Asphalt 5!<\/font><\/i><\/p>\n<p>  \u0412\u0435\u0441\u044c\u043c\u0430 \u0441\u0438\u043c\u043f\u0430\u0442\u0438\u0447\u043d\u043e, \u0441\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u0435\u0441\u044c? <\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u041f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c<\/font><\/h2>\n<p>  \u041d\u043e MBX, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u043d\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u00ab\u0438\u0437 \u043d\u0438\u043e\u0442\u043a\u0443\u0434\u0430\u00bb \u0438 \u0431\u044b\u043b \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u043d\u043d\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Imagination Tech, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e GPU \u0438\u0437 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 <b>SEGA Dreamcast<\/b> \u2014 PowerVR CLX2, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0431\u044b\u043b \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0440\u0430\u043d\u043d\u0438\u0445 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043d\u044b\u0445 GPU PowerVR \u0438\u0437 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b-\u043a\u043e\u043d\u0446\u0430 90-\u0445 \u0433\u043e\u0434\u043e\u0432. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0444\u0438\u0448\u043a\u0430 PowerVR \u0431\u044b\u043b\u0430 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0439 \u0442\u0435\u0445\u043d\u0438\u043a\u0438 \u043e\u0442\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 (TBDR), \u043a\u043e\u0442\u043e\u0440\u0430\u044f, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Z-\u0431\u0443\u0444\u0435\u0440\u0430 (\u0438\u043b\u0438 \u0440\u0443\u0447\u043d\u043e\u0439 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432) \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432 \u00ab\u0432 \u043b\u043e\u0431\u00bb (\u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0432 PSP, PS2 \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442 2000-\u0445 \u0433\u043e\u0434\u043e\u0432), \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0436\u0434\u0451\u0442 \u043e\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0441\u043f\u0438\u0441\u043a\u0430 \u0432\u0441\u0435\u0445 \u0440\u0438\u0441\u0443\u0435\u043c\u044b\u0445 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0432 \u043a\u0430\u0434\u0440\u0435, \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442 \u0432\u0435\u0441\u044c \u044d\u043a\u0440\u0430\u043d \u043d\u0430 \u0442\u0430\u0439\u043b\u044b (\u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u043b\u0430\u0441\u0442\u0438), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430\u0445, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c, \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0445\u043e\u0436\u0438\u043c \u0441 \u0440\u0435\u0439\u0442\u0440\u0435\u0439\u0441\u0438\u043d\u0433\u043e\u043c, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u043a\u0430\u043a\u043e\u0439 \u0438\u0437 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0431\u043b\u0438\u0436\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u043a\u0430\u043c\u0435\u0440\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u0435\u043b\u044f. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u044b \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u0441\u044f \u043e\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Z-\u0431\u0443\u0444\u0435\u0440\u0430 (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e, \u043f\u043e \u043c\u0435\u0440\u043a\u0430\u043c \u0442\u0435\u0445 \u043b\u0435\u0442, \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0441\u0442\u0440\u0430\u0434\u0430\u0435\u0442 \u043e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0438 Z-fighting&#8217;\u0430), \u0430 \u0442\u0430\u043a\u0436\u0435 \u0442\u0430\u043a\u043e\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0448\u0435\u0432\u044b\u0439 \u0430\u043b\u044c\u0444\u0430-\u0431\u043b\u0435\u043d\u0434\u0438\u043d\u0433 \u0431\u0435\u0437 \u0440\u0443\u0447\u043d\u043e\u0439 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u043e\u043b\u0443\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432 \u0438 \u0438\u043c\u0435\u0435\u0442 \u0435\u0449\u0451 \u043e\u0434\u043d\u0443 \u043f\u0440\u0438\u044f\u0442\u043d\u0443\u044e \u0444\u0438\u0448\u043a\u0443 \u2014 \u00ab\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439\u00bb Occlusion Query, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445 \u0442\u0435\u0445\u043d\u0438\u043a \u043e\u0442\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u043e\u0439 \u0433\u043b\u0430\u0437\u0443 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438. <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/551\/709\/4d0\/5517094d0f867151288aab413b4eb993.png\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/551\/709\/4d0\/5517094d0f867151288aab413b4eb993.png\"\/><\/div>\n<p>  \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c PowerVR MBX \u0431\u044b\u043b\u0430 \u0432\u0435\u0441\u044c\u043c\u0430 \u0434\u043e\u0441\u0442\u043e\u0439\u043d\u043e\u0439 \u0434\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u043b\u0435\u0442: \u043f\u0440\u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 200\u041c\u0413\u0446, \u0432\u0438\u0434\u0435\u043e\u0447\u0438\u043f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u043b \u0444\u0438\u043b\u043b\u0440\u0435\u0439\u0442 \u0432 100\u041c\u043f, \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b \u0434\u043e 1\u043c\u043b\u043d \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u041d\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c API MBX \u0431\u044b\u043b <b>OpenGL ES<\/b> 1.1 \u2014 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0443\u0440\u0435\u0437\u0430\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f OpenGL \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u044b\u0431\u0440\u043e\u0441\u0438\u043b\u0438 \u0432\u0441\u0435 \u043d\u0435\u043d\u0443\u0436\u043d\u043e\u0435 \u0438 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434 floating-point, \u043d\u043e \u0438 \u043f\u043e\u0434 fixed-point \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0443. \u0412 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u043c, \u043e\u0441\u043e\u0431\u043e \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043e\u0442\u043b\u0438\u0447\u0438\u0439 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c\u0438 GPU \u043d\u0435 \u0431\u044b\u043b\u043e, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043e\u0433\u043e OpenGL \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0434\u0435\u0432\u0430\u0439\u0441\u044b, \u0447\u0435\u043c \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u044b \u043f\u0440\u0438 \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 Quake 3 \u043d\u0430 Nokia E90, \u041a\u041f\u041a \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u0435\u0432\u0430\u0439\u0441\u044b. \u0422\u0430\u043a\u0436\u0435, PowerVR MBX \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b <b>D3DM<\/b> \u2014 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 API Windows Mobile, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u043e\u0437\u0434\u043d\u0435\u0435.<\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/65a44d147f26cf30b32fa6bf\" data-style=\"\" id=\"65a44d147f26cf30b32fa6bf\" width=\"\"><\/div>\n<\/div>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e PowerVR MBX \u0431\u044b\u043b GPU \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u043e\u043c (FFP), \u0430 \u043d\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u043c, \u043a\u0430\u043a \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 3D-\u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u044f\u0445. \u0427\u0442\u043e-\u0436\u0435 \u0442\u0430\u043a\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0438 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f:<\/p>\n<ul>\n<li> <b>\u0424\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440<\/b>: \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0434\u0430\u0442\u044c \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e \u0440\u0438\u0441\u0443\u0435\u043c\u043e\u0439 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u0438\u0434\u0435\u043e\u0447\u0438\u043f\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u0432\u0438\u0434\u043e\u043c \u0440\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0443\u0435\u043c\u044b\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0432\u0435\u0442\u0430, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0437\u0430\u0434\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 8 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0441\u0432\u0435\u0442\u0430 \u0432\u043b\u0438\u044f\u044e\u0449\u0438\u0445 \u043d\u0430 \u0440\u0438\u0441\u0443\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442. \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043a\u0441\u0442\u0443\u0440 \u0437\u0430 \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0445\u043e\u0434 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043b\u0430\u0432\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u0442\u0435\u043a\u0441\u0442\u0443\u0440 \u043d\u0430 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u0435 \u0438\u043b\u0438 \u043d\u0430\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u043a\u0430\u0440\u0442\u044b \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u043c\u043e\u0434\u0435\u043b\u044c), \u043e\u043d \u043e\u043f\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b <b>\u043a\u043e\u043c\u0431\u0430\u0439\u043d\u0435\u0440\u0430\u043c\u0438<\/b>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b\u0438 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e <b>\u0441\u044d\u043c\u043f\u043b\u0435\u0440\u0430<\/b> \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043d\u0430 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043d\u044b\u0445 GPU \u044d\u043f\u043e\u0445\u0438 \u0434\u043e GeForce 3 (\u0442. \u0435. \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0434\u043e 2000 \u0433\u043e\u0434\u0430), \u0434\u043e PS3 \u043d\u0430 Sony PlayStation (Xbox \u0441\u0440\u0430\u0437\u0443 \u0432\u044b\u0448\u0435\u043b \u0441 GeForce 3) \u0438 \u0434\u043e PSP \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u0442\u0438\u0432\u043a\u0430\u0445. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430 \u0432 \u0442\u043e\u043c, \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0435\u0433\u043e \u0438\u0433\u0440\u0430 \u043d\u0430 \u0442\u043e\u0439 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0435.<\/li>\n<li> <b>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440<\/b>: \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u043e\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0435, \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043f\u0438\u0448\u0435\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 <b>\u0448\u0435\u0439\u0434\u0435\u0440\u0430\u043c\u0438<\/b>. \u0412\u0441\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 (\u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 GPU \u0438\u0445 \u0431\u043e\u043b\u044c\u0448\u0435) \u044d\u0442\u0430\u043f\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430: \u043f\u0435\u0440\u0432\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u2014 \u0432\u0435\u0440\u0448\u0438\u043d\u043d\u044b\u0439 \u0448\u0435\u0439\u0434\u0435\u0440, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0438\u0439 \u0437\u0430 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 (\u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0438\u0437 \u043c\u0438\u0440\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432 \u044d\u043a\u0440\u0430\u043d\u043d\u0443\u044e) \u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e. \u0422\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u0442\u0430\u043f \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u2014 \u0440\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044e, \u0433\u0434\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u044b\u0439 \u0448\u0435\u0439\u0434\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0446\u0432\u0435\u0442 \u043f\u0438\u043a\u0441\u0435\u043b\u044f (\u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u2014 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438 3D \u0433\u0440\u0430\u0444\u0438\u043a\u0438) \u2014 \u0442.\u0435 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u043a\u0440\u0430\u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0446\u0432\u0435\u0442, \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u0443 (\u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043a\u0441\u0442\u0443\u0440), \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u043e\u0435 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435, \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0442\u0435\u043d\u0438 \u0438 \u0442. \u0434. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u0438\u043a\u0438 \u0442\u0438\u043f\u0430 Ambient Occlusion, SSR, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0441\u0442-\u044d\u0444\u0444\u0435\u043a\u0442\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0431\u043b\u044e\u0440\/\u0431\u043b\u0443\u043c, \u043f\u0440\u0430\u0432\u0434\u0430 \u044d\u0442\u0438 \u0434\u0432\u0430 \u043c\u043e\u0436\u043d\u043e \u00ab\u0441\u044d\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u00bb \u0438 \u043d\u0430 FFP \u043f\u0440\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u043d\u043e\u0440\u043e\u0432\u043a\u0435).<\/li>\n<\/ul>\n<p>  \u041a 2007 \u0433\u043e\u0434\u0443, Khronos \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0432\u0442\u043e\u0440\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 <a href=\"https:\/\/registry.khronos.org\/OpenGL\/specs\/es\/2.0\/es_cm_spec_2.0.pdf\">OpenGL ES<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b\u0430 \u0432 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0438 \u0448\u0435\u0439\u0434\u0435\u0440\u043e\u0432. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 GPU \u0432\u0441\u0451 \u0431\u043b\u0438\u0436\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u043b\u0438\u0441\u044c \u043a \u0443\u0440\u043e\u0432\u043d\u044e \u043a\u043e\u043d\u0441\u043e\u043b\u0435\u0439 \u0438 \u043c\u043e\u0433\u043b\u0438 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0432\u043f\u043e\u043b\u043d\u0435 \u0433\u043e\u0434\u043d\u0443\u044e \u0433\u0440\u0430\u0444\u0438\u043a\u0443, \u0431\u043b\u0438\u0437\u043a\u0443\u044e \u043a \u043a\u043e\u043d\u0441\u043e\u043b\u044f\u043c. \u0414\u0430\u0436\u0435 \u0431\u044b\u043b\u0430 \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0442\u0430\u043a\u0430\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u044c, \u043a\u0430\u043a Zeebo, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u043d\u043e\u0433\u043e \u0447\u0438\u043f\u0441\u0435\u0442\u0430 Qualcomm \u0441 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0439 ATI Imageon (!). PowerVR \u0443\u0436\u0435 \u0432 2009 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u0441\u0435\u0440\u0438\u044e <b>SGX<\/b>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0432 iPhone, iPad, \u043c\u043d\u043e\u0433\u0438\u0445 Android-\u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0430\u0445 \u0438 \u043f\u043b\u0430\u043d\u0448\u0435\u0442\u0430\u0445, \u0430 \u0442\u0430\u043a\u0436\u0435 PS Vita!<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/e16\/2e7\/cb4\/e162e7cb45b978e972b852dd550929a1.jpg\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/e16\/2e7\/cb4\/e162e7cb45b978e972b852dd550929a1.jpg\" data-blurred=\"true\"\/><\/div>\n<p>  <i><font color=\"#4682B4\">Modern Combat 3 \u043d\u0430 iPad<\/font><\/i><\/p>\n<p>  \u041d\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u0441 \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u0437\u043e\u043c \u0444\u0438\u0448\u0435\u043a PowerVR MBX \u0431\u044b\u043b\u0430 \u0431\u044b \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0431\u0435\u0437 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c 3D-\u0438\u0433\u0440\u044b \u043f\u043e\u0434 \u044d\u0442\u043e\u0442 GPU \u0441 \u043d\u0443\u043b\u044f! \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0433\u043e \u0433\u043e\u0441\u0442\u044f, \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u044b\u0439 \u0444\u043b\u0430\u0433\u043c\u0430\u043d\u0441\u043a\u0438\u0439 \u041a\u041f\u041a <b>Dell Axim X51v<\/b> \u0438\u0437 \u0434\u0430\u043b\u0435\u043a\u043e\u0433\u043e 2005 \u0433\u043e\u0434\u0430! \u0414\u043b\u044f \u0442\u0435\u0445 \u043b\u0435\u0442, \u044d\u0442\u043e \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u00ab\u0436\u0438\u0440\u00bb:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/16e\/012\/34d\/16e01234d801c6f08b916114e1be6f58.png\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/16e\/012\/34d\/16e01234d801c6f08b916114e1be6f58.png\"\/><\/div>\n<p>  \u0415\u0433\u043e \u043c\u043d\u0435 \u043f\u043e\u0434\u0430\u0440\u0438\u043b \u043c\u043e\u0439 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u0421\u0435\u0440\u0433\u0435\u0439 \u0441 \u0425\u0430\u0431\u0440\u0430, \u0437\u0430 \u0447\u0442\u043e \u0435\u043c\u0443 \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e! \u0414\u0435\u0432\u0430\u0439\u0441 \u0431\u044b\u043b \u0432 \u043f\u043e\u043b\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430\u0446\u0438\u0438, \u0434\u0430\u0436\u0435 \u0441 \u0444\u043b\u044d\u0448\u043a\u043e\u0439 \u0438 \u0443\u0441\u0438\u043b\u0435\u043d\u043d\u043e\u0439 \u0410\u041a\u0411, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0434\u0435\u0440\u0436\u0438\u0442 \u0437\u0430\u0440\u044f\u0434, \u043e\u0434\u043d\u0430\u043a\u043e \u0443 \u043d\u0435\u0433\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0442\u0430\u0447\u0441\u043a\u0440\u0438\u043d. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0433\u0440\u044b, \u0430 \u043d\u0435 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0435\u043c\u043e\u043d\u0442\u0430, \u0442\u043e \u043b\u0438\u0441\u0442\u0430\u0439\u0442\u0435 \u043d\u0438\u0436\u0435 \u0441\u0440\u0430\u0437\u0443 \u0434\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0430\u0431\u0437\u0430\u0446\u0430 \ud83d\ude42<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c: \u0440\u0435\u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u041a\u041f\u041a<\/font><\/h2>\n<p>  \u041f\u043e \u0444\u0430\u043a\u0442\u0443, \u0434\u0435\u0432\u0430\u0439\u0441 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0431\u043e\u0442\u0430\u043b, \u043e\u0434\u043d\u0430\u043a\u043e \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0435 \u043e\u0442\u043a\u043b\u0438\u043a\u0430\u043b\u0441\u044f \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0438 \u0438 \u0442\u0430\u0447\u0441\u043a\u0440\u0438\u043d, \u0438 \u043f\u043e \u0432\u0441\u0435\u043c \u0441\u0438\u043c\u043f\u0442\u043e\u043c\u0430\u043c \u044d\u0442\u043e \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u043e \u0434\u0440\u0435\u0431\u0435\u0437\u0433 \u043a\u043d\u043e\u043f\u043e\u043a. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0442\u0430\u0447\u0441\u043a\u0440\u0438\u043d \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043b \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e \u0432\u0441\u0435\u0445 \u043c\u0435\u0441\u0442\u0430\u0445, \u0447\u0442\u043e, \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u043b\u043e \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0435\u0433\u043e \u043f\u043e\u043b\u043e\u043c\u043a\u0438 (\u0445\u043e\u0442\u044f \u0440\u0435\u0437\u0438\u0441\u0442\u0438\u0432\u043d\u044b\u0435 \u0442\u0430\u0447-\u043f\u0430\u043d\u0435\u043b\u0438 \u0441\u0430\u043c\u0438 \u043f\u043e \u0441\u0435\u0431\u0435 \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0435, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u0435\u043c\u043a\u043e\u0441\u0442\u043d\u044b\u0445 \u0442\u0430\u0447\u0441\u043a\u0440\u0438\u043d\u043e\u0432). \u0414\u0435\u043b\u043e \u0431\u044b\u043b\u043e \u0432\u043e\u0442 \u0432 \u0447\u0451\u043c: \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u041a\u041f\u041a \u0442\u0435\u0445 \u043b\u0435\u0442 \u0431\u044b\u043b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0438 \u0442\u0430\u0447\u0441\u043a\u0440\u0438\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435 \u0444\u0438\u043b\u044c\u043c\u043e\u0432. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u043c\u043e\u0435\u043c \u0434\u0435\u0432\u0430\u0439\u0441\u0435 \u043e\u043d \u0431\u044b\u043b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0440\u0430\u0437\u0431\u043e\u043b\u0442\u0430\u043d\u043d\u044b\u043c\u2026<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/2dc\/834\/6ee\/2dc8346ee7d94d00a8d59db936616b57.png\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/2dc\/834\/6ee\/2dc8346ee7d94d00a8d59db936616b57.png\"\/><\/div>\n<p>  \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u041a\u041f\u041a \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e: \u0432\u044b\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u043c 4 \u0432\u0438\u043d\u0442\u0430 \u0438 \u0441\u043d\u0438\u043c\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u043d\u044e\u044e \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441\u0430. \u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u044f \u043f\u0440\u043e\u0447\u0438\u0441\u0442\u0438\u043b \u0433\u0440\u044f\u0437\u044c \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u0447\u0435\u043c \u0438 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043a\u043e\u0440\u043f\u0443\u0441\u0430 \u2014 \u043e\u043d\u0430 \u0442\u043e\u0436\u0435 \u0431\u044b\u0432\u0430\u0435\u0442 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043b\u043e\u0436\u043d\u044b\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u0438 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u0447\u0441\u043a\u0440\u0438\u043d\u0430:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/b71\/25f\/f0b\/b7125ff0b212222e3931d187a8fcc37d.png\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/b71\/25f\/f0b\/b7125ff0b212222e3931d187a8fcc37d.png\"\/><\/div>\n<p>  \u0410 \u0432\u043e\u0442 \u0438 \u0432\u0438\u043d\u043e\u0432\u043d\u0438\u043a \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c: \u0440\u044b\u0447\u0430\u0436\u043e\u043a \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f \u0431\u044b\u043b \u043e\u0442\u043b\u043e\u043c\u0430\u043d, \u043d\u043e \u0432\u0441\u0435 \u0435\u0449\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u00ab\u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u00bb. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432 \u0432\u044b\u0436\u0430\u0442\u044c \u0432 \u0443\u043f\u043e\u0440 \u2014 \u043e\u043d \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b. \u041d\u0443 \u0447\u0442\u043e \u0436, \u0444\u0435\u043d \u0432 \u0440\u0443\u043a\u0438, \u0441\u0434\u0443\u0432\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0438 \u0441\u0442\u0430\u0432\u0438\u043c \u0432\u043e\u0442 \u0442\u0430\u043a\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u0443 (\u043d\u0430 \u0444\u043e\u0442\u043e \u0444\u043b\u044e\u0441 \u0435\u0449\u0451 \u043d\u0435 \u043e\u0442\u043c\u044b\u0442):<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/db3\/8e1\/d22\/db38e1d2221cf1214a70b37766a83393.png\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/db3\/8e1\/d22\/db38e1d2221cf1214a70b37766a83393.png\"\/><\/div>\n<p>  \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0434\u0435\u0432\u0430\u0439\u0441 \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u2014 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442! \u0412\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0440\u0435\u043c\u043e\u043d\u0442 Axim&#8217;\u0430. \u041a\u041f\u041a \u043c\u043d\u0435 \u0441\u0440\u0430\u0437\u0443 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f, \u044f \u0438 \u0440\u0430\u043d\u0435\u0435 \u0437\u043d\u0430\u043b \u043e \u0435\u0433\u043e \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u043e\u0441\u0442\u0438, \u043d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0443\u0437\u043d\u0430\u043b \u0438 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0443\u0442\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u0438 \u0441\u043e\u0431\u0440\u0430\u043d! \u041a\u0441\u0442\u0430\u0442\u0438, \u0435\u0441\u0442\u044c \u0441\u043c\u044b\u0441\u043b \u0441\u0440\u0430\u0437\u0443 \u0441\u0434\u0443\u0442\u044c \u043a\u043e\u043d\u0446\u0435\u0432\u043e\u0439 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u0436\u0438\u043c\u0430\u0435\u0442 \u0437\u0430\u0434\u043d\u044f\u044f \u043a\u0440\u044b\u0448\u043a\u0430 \u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u0443.<br \/>  GPU \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0445 \u043f\u0440\u043e\u0448\u0438\u0432\u043e\u043a, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u0440\u043e\u0448\u0438\u0442\u044b \u043c\u043d\u043e\u0433\u0438\u0435 Axim X51v. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0441\u0442\u044c \u0441\u043c\u044b\u0441\u043b \u043f\u0440\u043e\u0448\u0438\u0442\u044c \u0441\u0442\u043e\u043a: <a href=\"https:\/\/4pda.to\/forum\/index.php?showtopic=35708\">\u043a\u0430\u0447\u0430\u0435\u043c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443<\/a> (\u0424\u0430\u0439\u043b \u043e\u0442\u043a\u0430\u0442\u0430), \u0437\u0430\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c \u043d\u0430 SD-\u043a\u0430\u0440\u0442\u0443 \u0438 \u0440\u0435\u0431\u0443\u0442\u0438\u043c \u0434\u0435\u0432\u0430\u0439\u0441 \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0448 Wi-Fi + \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 + Reset. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e, \u0434\u0435\u0432\u0430\u0439\u0441 \u043f\u043e\u0439\u0434\u0435\u0442 \u043f\u0440\u043e\u0448\u0438\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/63c\/c8e\/364\/63cc8e36481c4fe7290d6e14b56a2aac.png\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/63c\/c8e\/364\/63cc8e36481c4fe7290d6e14b56a2aac.png\"\/><\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0435\u0432\u0430\u0439\u0441 \u0447\u0438\u0441\u0442\u044b\u0439, \u043a\u0430\u043a \u0441 \u0437\u0430\u0432\u043e\u0434\u0430! \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0434\u0435\u043c\u043a\u0438-\u0438\u0433\u0440\u0443\u0448\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043c \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b \u043d\u0430\u0448\u0435\u0433\u043e \u041a\u041f\u041a \u0432 3D!<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c: \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430<\/font><\/h2>\n<p>  \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e, \u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u043b\u0430 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u0430\u044f Nokia N95. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u043e\u0442 \u043d\u0435\u0437\u0430\u0434\u0430\u0447\u0430: \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043f\u043e\u0434 Symbian \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0441\u044f SDK (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434 <a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/683262\/\">Windows XP<\/a>), \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0441\u0442\u0430\u0440\u0448\u0435 9.x \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u0437\u043b\u0430\u043c\u044b\u0432\u0430\u0442\u044c installserver, \u0434\u0430\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0445\u043e\u0443\u043c\u0431\u0440\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b (\u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0438 \u043d\u0430\u0448\u0430 \u0438\u0433\u0440\u0430) \u0438 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a <b>TRK<\/b>.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/913\/993\/617\/913993617053b8e087300bae038cff7d.png\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/913\/993\/617\/913993617053b8e087300bae038cff7d.png\"\/><\/div>\n<p>  \u0418 \u0445\u043e\u0442\u044f \u0441\u0432\u043e\u0439 \u0434\u0435\u0432\u0430\u0439\u0441 \u044f \u043f\u0440\u043e\u043f\u0430\u0442\u0447\u0438\u043b, \u0434\u0435\u0431\u0430\u0433\u0433\u0435\u0440 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u043c\u043d\u0435 \u0442\u0430\u043a \u0438 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c. \u042f \u0441\u043c\u043e\u0433 \u043f\u0440\u043e\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 GLES, \u0437\u0430\u043f\u0438\u043b\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0435\u043d\u0434\u0435\u0440\u0435\u0440 \u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0430\u0441\u0441\u0435\u0442\u043e\u0432 \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u043e \u043f\u043e\u0442\u043e\u043c \u0440\u0435\u0448\u0438\u043b \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 WinMobile\u2026 \u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u043f\u043e\u0434 Symbian \u043c\u043d\u043e\u0433\u043e: \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u0440\u0430\u0448\u0438\u0442\u0441\u044f \u2014 \u0442\u043e \u043e\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0431\u0435\u0437 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0438 \u043b\u043e\u0433\u043e\u0432. \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043a \u044d\u0442\u043e\u043c\u0443 \u0442\u043e, \u0447\u0442\u043e \u0432 Symbian \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0438 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043b\u043e\u0433 \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0443\u0436\u0430\u0441. \u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 Qt, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 N95, \u043d\u043e \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 GLES (\u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u0432 \u0432\u0438\u0434\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e QOpenGL, \u0445\u043e\u0442\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u044e\u0437\u0430\u0442\u044c API \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u0437 Qt \u0435\u0441\u0442\u044c \u0438 \u0434\u0435\u0431\u0430\u0433\u0433\u0435\u0440 \u0442\u0430\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e, \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0435 \u0432\u0441\u0451 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u043e). \u0415\u0441\u043b\u0438 \u0432\u044b \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0447\u0442\u043e-\u0442\u043e \u043f\u0438\u043b\u0438\u043b\u0438 \u043f\u043e\u0434 Symbian, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 Carbide \u2014 \u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u0432\u043e\u0439 \u043e\u043f\u044b\u0442 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \ud83d\ude42<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/757\/ec3\/e97\/757ec3e977c4e010005dfbcfc2a5dc70.jpg\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/757\/ec3\/e97\/757ec3e977c4e010005dfbcfc2a5dc70.jpg\" data-blurred=\"true\"\/><\/div>\n<p>  WinMobile \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u0442\u0435\u043c, \u0447\u0442\u043e \u0432 \u043d\u0451\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u0434\u0432\u0430 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 API: \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 OpenGLES \u0432 \u043f\u0440\u043e\u0444\u0438\u043b\u0435 Common Lite (\u0442\u043e\u043b\u044c\u043a\u043e fixed-point \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430) \u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Direct3D \u2014 D3DM.dll, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 API \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u043d\u0430 DX9, \u043d\u043e \u0431\u0435\u0437 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0448\u0435\u0439\u0434\u0435\u0440\u043e\u0432. \u0427\u0442\u043e \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043f\u0440\u0438\u044f\u0442\u043d\u043e \u2014 \u0435\u0441\u0442\u044c \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u043d\u0434\u0438\u043d\u0433\u0438 \u043e\u0442 Microsoft \u043a D3DM \u0432 .NET Compact Framework, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u0435\u0433\u043a\u043e \u043f\u0438\u0441\u0430\u0442\u044c 3D-\u0438\u0433\u0440\u044b \u043f\u043e\u0434 WM \u043d\u0430 C#\/VB.NET.<br \/>  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 WinMobile \u2014 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u0445\u0432\u0430\u0442\u0438\u0442 \u043b\u0438\u0448\u044c \u043d\u0430\u043a\u0430\u0442\u0438\u0442\u044c VS2005\/2008 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0443 \u0441 WinXP\/WinVista\/Win7\/Win8 \u0438 \u0441\u0440\u0430\u0437\u0443 \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043d\u0435\u0451 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043e\u0442\u043b\u0430\u0434\u043a\u043e\u0439 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0442\u0443\u0442 \u043d\u0435\u0442. \u041d\u0430 Win10\/Win11 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 WM5 \u043f\u043e\u043b\u043e\u043c\u0430\u043b\u0438 \ud83d\ude41<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/6d4\/cba\/4fa\/6d4cba4fa86c0f34ea0a9371bcd06a5a.png\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/6d4\/cba\/4fa\/6d4cba4fa86c0f34ea0a9371bcd06a5a.png\"\/><\/div>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043c\u0430\u0440\u0442-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b WM5-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e (\u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0446\u0435\u043b\u0435\u0439, \u043e\u043d \u0434\u0430\u0436\u0435 \u0434\u043b\u044f 2D-\u0438\u0433\u0440 \u043d\u0435 \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442) \u0438, \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0438\u0433\u0440\u044b!<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/14f\/2d2\/4f6\/14f2d24f640a00b7b03a076cd75a0892.png\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/14f\/2d2\/4f6\/14f2d24f640a00b7b03a076cd75a0892.png\"\/><\/div>\n<p>  \u0427\u0442\u043e \u0436\u0435 \u0437\u0430 \u0438\u0433\u0440\u0430 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442? \u042f \u0440\u0435\u0448\u0438\u043b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0434\u0430\u043a\u043e\u0435 3D-\u043f\u0435\u0440\u0435\u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u043d\u043d\u0435\u0440\u0430 \u0438\u0437 \u00ab\u0442\u0435\u0442\u0440\u0438\u0441\u0430\u00bb, \u0433\u0434\u0435 \u043c\u044b \u0435\u0434\u0435\u043c \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u043a\u0435 F1 \u0438 \u043e\u0431\u0433\u043e\u043d\u044f\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u0430\u0448\u0438\u043d\u044b, \u0441\u0442\u0430\u0440\u0430\u044f\u0441\u044c \u0432 \u043d\u0438\u0445 \u043d\u0435 \u0432\u0440\u0435\u0437\u0430\u0442\u044c\u0441\u044f. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0435\u043b\u044c\u044e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0431\u0440\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0447\u043a\u043e\u0432. \u041f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0438\u0433\u0440\u044b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b \u043d\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0434\u0435\u0432\u0430\u0439\u0441\u0430\u0445 \u0438 \u0441\u0435\u0439\u0447\u0430\u0441: \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0445\u043e\u0442\u044f-\u0431\u044b Highway Traffic, \u043e\u0434\u043d\u0430\u043a\u043e \u043c\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0441\u044c\u043c\u0430 \u043a\u043e\u043b\u043e\u0440\u0438\u0442\u043d\u044b\u043c: \u0432\u0435\u0434\u044c \u0432 \u043c\u043e\u0435\u0439 \u0434\u0435\u043c\u043a\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043a\u0430\u0442\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0422\u0410\u0417\u0435 21099 \u0438 \u0443\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0433\u043d\u0438\u043b\u044b\u0445 \u00ab\u0432\u0442\u043e\u0440\u044b\u0445 \u0433\u043e\u043b\u044c\u0444\u043e\u0432\u00bb. \u041d\u0443 \u0430 \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u0438 \u043d\u0435\u0442, \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043b\u044e\u0431\u043b\u044e \u0441\u0442\u0430\u0440\u044b\u0435 \u0433\u043d\u0438\u043b\u044b\u0435 \u0436\u0438\u0433\u0443\u043b\u0438 \u0438 \u044d\u0442\u043e \u043d\u0435 \u043f\u0435\u0440\u0432\u044b\u0439 <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/764526\/\">\u043c\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442<\/a> \u043f\u0440\u043e \u043c\u0430\u0448\u0438\u043d\u044b \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \ud83d\ude42<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/vz\/cw\/ag\/vzcwagsxhxidoafivthxxwegds8.png\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/vz\/cw\/ag\/vzcwagsxhxidoafivthxxwegds8.png\"\/><\/div>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c: \u00ab\u0434\u0432\u0438\u0436\u043e\u043a\u00bb<\/font><\/h2>\n<p>  \u041a\u0430\u043a \u0438 \u0443 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u044b, \u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0433\u0440\u044b \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0434\u0432\u0438\u0436\u043e\u043a! \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u043d\u0430\u0448\u0435\u0439 \u0438\u0433\u0440\u044b, \u044d\u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u043e\u0432\u043d\u043e \u0442\u043e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u0435\u043d \u0438\u0433\u0440\u0435 \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445 \u043b\u0438\u0431\u043e \u0438\u0437\u043b\u0438\u0448\u0435\u0441\u0442\u0432. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430, \u0434\u0430\u0431\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u0433\u0440\u044b \u043d\u0435 \u0441\u043a\u0430\u0442\u0438\u043b\u043e\u0441\u044c \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0432 \u0443\u0437\u043a\u0438\u0445 \u043a\u0440\u0443\u0433\u0430\u0445 \u043a\u0430\u043a \u00ab\u0434\u0432\u0438\u0436\u043a\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u00bb \ud83d\ude42<\/p>\n<ul>\n<li> <b>\u0420\u0435\u043d\u0434\u0435\u0440\u0435\u0440<\/b>: \u0441 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f, \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b. \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u0438 \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u044b \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e-\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044e \u043a\u0430\u043c\u0435\u0440\u044b, \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043f\u0440\u0430\u0439\u0442\u044b \u0438 \u0442\u0435\u043a\u0441\u0442, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u043d\u043e\u0441\u0438\u0442\u044c \u043d\u0430 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u044b, \u043a\u0440\u0430\u0441\u0438\u0442\u044c \u0438\u0445 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u0432\u0435\u0440\u0448\u0438\u043d\u043d\u044b\u043c \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u043d\u043e\u0441\u0438\u0442\u044c \u043d\u0430 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 enviornment-\u0442\u0435\u043a\u0441\u0442\u0443\u0440. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0440\u0435\u043d\u0434\u0435\u0440\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u043c\u0435\u0442\u044c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u043c\u043f\u0430\u0442\u0438\u0447\u043d\u043e\u0435 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u043d\u0435\u0431\u043e \u0432 \u0432\u0438\u0434\u0435 \u043f\u043e\u043b\u0443\u0441\u0444\u0435\u0440\u044b.<\/li>\n<li> <b>\u0417\u0432\u0443\u043a<\/b>: \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 wav-\u0437\u0432\u0443\u043a\u043e\u0432 \u0438 \u043c\u0443\u0437\u044b\u043a\u0438 \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432. \u0414\u0430 \u0438 \u0432\u0441\u0451 \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u2014 \u0447\u0442\u043e \u0435\u0449\u0451 \u043d\u0443\u0436\u043d\u043e \u043e\u0442 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u044b? \ud83d\ude42 \u0421\u0442\u0435\u0440\u0435\u043e \u0432\u0435\u0434\u044c \u043d\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438 3D-\u0437\u0432\u0443\u043a \u043d\u0435 \u043d\u0443\u0436\u0435\u043d.<\/li>\n<li> <b>\u0412\u0432\u043e\u0434<\/b>: \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430\u0436\u0430\u0442\u0438\u0439 \u043d\u0430 \u0442\u0430\u0447\u0441\u043a\u0440\u0438\u043d \u0438 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043c\u0430\u043f\u043f\u0438\u043d\u0433 \u043a\u0435\u0439\u043a\u043e\u0434\u043e\u0432 \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u00ab\u0433\u0435\u0439\u043c\u043f\u0430\u0434\u00bb. GUI-\u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0442\u043e\u0436\u0435 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043d\u0435\u0441\u0442\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u044e\u0434\u0430!<\/li>\n<li> <b>\u0424\u0438\u0437\u0438\u043a\u0430<\/b>: AABB \u0438 Sphere vs Sphere \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f. \u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043e\u043b\u0432\u0435\u0440\u0430 \u0442\u0443\u0442 \u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \ud83d\ude42 <\/li>\n<\/ul>\n<p>  \u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u043d\u0434\u0435\u0440\u0435\u0440\u0430. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u043a\u043d\u043e \u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 D3DM. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u0435\u043d D3D8 \u0438 D3D9: \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043d\u0443\u0436\u043d\u043e\u043c \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0435 (\u0432\u0438\u0434\u0435\u043e\u0447\u0438\u043f\u0435) \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 PresentationParameters, \u043e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u0442\u044c \u0432\u0430\u0436\u043d\u044b\u0435 \u043d\u044e\u0430\u043d\u0441\u044b: \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 FSAA \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c (MultisampleQuality), \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0442\u043e\u0447\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u043a\u043d\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u044c \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0438\u043d\u0430\u0447\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0430\u0447\u043d\u0451\u0442 \u0441\u043e\u0444\u0442\u0432\u0430\u0440\u043d\u043e (!) \u0441\u043a\u0435\u0439\u043b\u0438\u0442\u044c \u0440\u0435\u043d\u0434\u0435\u0440\u0442\u0430\u0440\u0433\u0435\u0442 \u0434\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043e\u043a\u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u0430\u0434\u0440, \u0447\u0442\u043e, \u043a\u0430\u043a \u0441\u0430\u043c\u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u043a\u0440\u0430\u0439\u043d\u0435 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e.<\/p>\n<p>  \u0418\u0437 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 Depth-Stencil \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f D16, D24S8 \u0438 D32. \u0416\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c D16 (\u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0432 MBX \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u0435\u0441\u0442\u044c fallback \u0434\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 \u043f\u0440\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445). \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430 \u0432\u0441\u0435\u0445 \u041a\u041f\u041a \u0438 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f 16-\u0431\u0438\u0442\u043d\u044b\u0439 \u0446\u0432\u0435\u0442, \u0442.\u0435 RGB565, \u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c Unknown \u2014 \u0442\u043e\u0433\u0434\u0430 GAPI \u043f\u043e\u0434\u0446\u0435\u043f\u0438\u0442 \u0442\u043e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442 \u043f\u0438\u043a\u0441\u0435\u043b\u044f, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435.<\/p>\n<pre><code class=\"cpp\">            PresentParameters pp = new PresentParameters();             pp.AutoDepthStencilFormat = DepthFormat.D16;             pp.BackBufferCount = 1;             pp.BackBufferFormat = Format.Unknown;             pp.BackBufferWidth = parentForm.ClientSize.Width;             pp.BackBufferHeight = parentForm.ClientSize.Height;             pp.EnableAutoDepthStencil = true;             pp.FullScreenPresentationInterval = PresentInterval.One;             pp.MultiSample = MultiSampleType.None;             pp.PresentFlag = PresentFlag.None;             pp.SwapEffect = SwapEffect.CopyVSync;             pp.Windowed = true;              device = new Device(0, DeviceType.Default, parentForm.Handle, CreateFlags.None, pp);             device.RenderState.Lighting = false;              aspectRatio = (float)parentForm.ClientSize.Width \/ (float)parentForm.ClientSize.Height; <\/code><\/pre>\n<p>  \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u043a \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438! \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430: \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0432\u0438\u0434\u0430 (\u0442. \u0435. \u043a\u0430\u043c\u0435\u0440\u044b) \u0438 \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438, \u0437\u0430\u0434\u0430\u0442\u044c \u0440\u0435\u043d\u0434\u0435\u0440\u0441\u0442\u0435\u0439\u0442\u044b (\u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0443\u0436\u043d\u043e \u043b\u0438 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c\u043a\u0443 \u0441 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c, \u0438\u043b\u0438 \u043d\u0435\u0442), \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u044d\u043a\u0440\u0430\u043d \u0438 Z-\u0431\u0443\u0444\u0435\u0440 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0442\u0435\u043a\u0441\u0442\u0443\u0440. \u041f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0443\u0440 \u2014 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u044f\u0436\u0435\u043b\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u0441\u0442\u043e\u0438\u0442 \u043b\u0438\u0448\u044c \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438:<\/p>\n<pre><code class=\"cs\">         public void BeginScene()         {             device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, System.Drawing.Color.SkyBlue, 1.0f, 0);             device.BeginScene();              device.TextureState[0].MinFilter = TextureFilter.Point;             device.TextureState[0].MagFilter = TextureFilter.Point;             device.RenderState.TexturePerspective = true;              \/\/ Prepare projection             Matrix matrix = Matrix.PerspectiveFovLH(60.0f * MathUtils.DegToRad, aspectRatio, 0.1f, 350.0f);             device.SetTransform(TransformType.Projection, matrix);         } <\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"cs\">        public void EndScene()         {             device.EndScene();             device.Present();              System.Threading.Thread.Sleep(16);         } <\/code><\/pre>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u043c\u043e\u0434\u0435\u043b\u044c\u043a\u0443 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0435\u0451 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c! \u0414\u043b\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u0438 \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0438\u0445 \u0432 \u0432\u0435\u0440\u0448\u0438\u043d\u043d\u044b\u0439 \u0431\u0443\u0444\u0435\u0440, \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440 \u0438\u0437 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 SMD (GoldSrc) \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439, \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0438 \u0435\u0451 \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u043d\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442:<\/p>\n<pre><code class=\"cs\">    public struct BoundingBox     {         public float MinX, MinY, MinZ;         public float MaxX, MaxY, MaxZ;     }      public sealed class ModelConverter     {         public const int Header = 0x1234;          static BoundingBox CalculateBBox(SmdMesh mesh)         {             BoundingBox ret = new BoundingBox();             ret.MinX = float.PositiveInfinity;             ret.MinY = float.PositiveInfinity;             ret.MinZ = float.PositiveInfinity;             ret.MaxX = float.NegativeInfinity;             ret.MaxY = float.NegativeInfinity;             ret.MaxZ = float.NegativeInfinity;              foreach (SmdTriangle triangle in mesh.Triangles)             {                 for (int i = 0; i &lt; 3; i++)                 {                     ret.MinX = Math.Min(ret.MinX, triangle.Verts[i].Position.X);                     ret.MinY = Math.Min(ret.MinY, triangle.Verts[i].Position.Y);                     ret.MinZ = Math.Min(ret.MinZ, triangle.Verts[i].Position.Z);                      ret.MaxX = Math.Max(ret.MaxX, triangle.Verts[i].Position.X);                     ret.MaxY = Math.Max(ret.MaxY, triangle.Verts[i].Position.Y);                     ret.MaxZ = Math.Max(ret.MaxZ, triangle.Verts[i].Position.Z);                 }             }              return ret;         }          private static int FloatToFixedPoint(float x)         {             return ((int)((x) * 65536.0f));         }          public static void Convert(string fileName, Stream stream)         {             Console.WriteLine(\"Converting mesh \" + fileName);              Smd2Bmd.SmdMesh mesh = new Smd2Bmd.SmdMesh(stream);             BoundingBox bb = CalculateBBox(mesh);              using(Stream outStrm = File.Create(Path.GetFileNameWithoutExtension(fileName) + \".mdl\"))             {                 BinaryWriter writer = new BinaryWriter(outStrm);                  writer.Write(Header);                 writer.Write(mesh.Triangles.Count * 3); \/\/ Verts count                                  \/\/ BBox                 writer.Write(bb.MinX);                 writer.Write(bb.MinY);                 writer.Write(bb.MinZ);                 writer.Write(bb.MaxX);                 writer.Write(bb.MaxY);                 writer.Write(bb.MaxZ);                  foreach (SmdTriangle triangle in mesh.Triangles)                 {                     for (int i = 0; i &lt; 3; i++)                     {                         writer.Write(FloatToFixedPoint(triangle.Verts[i].Position.X));                         writer.Write(FloatToFixedPoint(triangle.Verts[i].Position.Y));                         writer.Write(FloatToFixedPoint(triangle.Verts[i].Position.Z));                          writer.Write(triangle.Verts[i].UV.X);                         writer.Write(triangle.Verts[i].UV.Y);                     }                 }             }         }     } <\/code><\/pre>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, PowerVR MBX \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442 fixed-point \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u043e\u0439! D3DM, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0436\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c float-\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432\u0435\u0440\u0448\u0438\u043d \u0432 \u0447\u0438\u0441\u043b\u0430 \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439, \u0432\u043e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u044d\u0442\u043e \u043a\u0440\u0438\u0432\u043e \u0438 \u043a\u043e\u0441\u043e: \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0432 fixed-point <b>\u043a\u0430\u0436\u0434\u044b\u0439<\/b> \u0432\u044b\u0437\u043e\u0432 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438, \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u043f\u043e\u0441\u043b\u0435 Unlock&#8217;\u0430 \u0432\u0435\u0440\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u0442\u043e\u0440\u043c\u043e\u0437\u043d\u043e \u0434\u043b\u044f \u0445\u043e\u0442\u044c \u0441\u043a\u043e\u043b\u044c-\u043b\u0438\u0431\u043e \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \ud83d\ude42<\/p>\n<p>  \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0438 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0448\u0443\u0441\u0442\u0440\u043e \u0434\u0430\u0436\u0435 \u043d\u0430 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0430\u0431\u0435\u043d\u044c\u043a\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435:<\/p>\n<pre><code class=\"cs\">        public Model(string debugName, Stream strm)         {             BinaryReader reader = new BinaryReader(strm);              int hdr = reader.ReadInt32();             int numVerts = reader.ReadInt32();             int vertSize = 20;              Bounds = new BoundingBox(reader.ReadSingle() * 2, reader.ReadSingle() * 2, reader.ReadSingle() * 2,                 reader.ReadSingle() * 2, reader.ReadSingle() * 2, reader.ReadSingle() * 2);              PrimitiveCount = numVerts \/ 3;              byte[] data = new byte[numVerts * vertSize];             strm.Read(data, 0, (int)(strm.Length - strm.Position));              Buffer = new VertexBuffer(Engine.Current.Graphics.device, vertSize * numVerts, Usage.None, VertexFormats.PositionFixed | VertexFormats.Texture1, Pool.SystemMemory);             GraphicsStream gs = Buffer.Lock(0, Buffer.SizeInBytes, LockFlags.None);             gs.Write(data, 0, data.Length);             Buffer.Unlock();              DebugName = debugName;         } <\/code><\/pre>\n<p>  \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u0430\u043c. \u0413\u0440\u0443\u0437\u0438\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e png\/jpg \u043d\u0430 \u041a\u041f\u041a \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u043b\u0433\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0445 \u044f \u0442\u043e\u0436\u0435 \u043f\u0435\u0440\u0435\u0433\u043e\u043d\u044f\u044e \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0448\u0438\u0440\u0438\u043d\u044b\/\u0432\u044b\u0441\u043e\u0442\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u044b \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0430\u043c\u0438\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439. \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e RGB565 \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u044b \u2014 \u0441 \u043d\u0438\u043c\u0438 MBX \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e:<\/p>\n<pre><code class=\"cs\">    public sealed class TextureConverter     {         public const int Header = 0x1234;          public static unsafe void Convert(string fileName, Stream stream)         {             Console.WriteLine(\"Converting texture \" + fileName);                          Bitmap bitmap = (Bitmap)Image.FromStream(stream);             byte[] pixels = new byte[bitmap.Width * bitmap.Height * 2];              System.Drawing.Imaging.BitmapData data = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height),                  System.Drawing.Imaging.ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format16bppRgb565);             Marshal.Copy(data.Scan0, pixels, 0, pixels.Length);              bitmap.UnlockBits(data);              using (Stream outStrm = File.Create(Path.GetFileNameWithoutExtension(fileName) + \".tex\"))             {                 BinaryWriter writer = new BinaryWriter(outStrm);                  writer.Write(Header);                 writer.Write(0); \/\/ 0 - 565, 1 - RGBA                 writer.Write(bitmap.Width);                 writer.Write(bitmap.Height);                  writer.Write(pixels);             }         }     } <\/code><\/pre>\n<p>  \u0417\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0442\u043e\u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u043c \u0438 \u0448\u0443\u0441\u0442\u0440\u044b\u043c \u0434\u043e\u043d\u0435\u043b\u044c\u0437\u044f, \u043f\u0443\u0441\u0442\u044c \u0438 \u0431\u0435\u0437 \u043a\u0430\u043a\u043e\u0439 \u043b\u0438\u0431\u043e \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u0438. PowerVR MBX \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u0438 \u2014 PVRTC:<\/p>\n<pre><code class=\"cs\">BinaryReader reader = new BinaryReader(strm);              int hdr = reader.ReadInt32();             int fmt = reader.ReadInt32();              Width = reader.ReadInt32();             Height = reader.ReadInt32();              byte[] data = new byte[Width * Height * 2];             strm.Read(data, 0, data.Length);              Handle = new Texture(Engine.Current.Graphics.device, Width, Height, 1, Usage.Lockable, Format.R5G6B5, Pool.VideoMemory);              int pitch;             GraphicsStream gs = Handle.LockRectangle(0, LockFlags.None, out pitch);             gs.Write(data, 0, data.Length);             Handle.UnlockRectangle(0);              strm.Close(); <\/code><\/pre>\n<p>  \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043a \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044e \u043c\u043e\u0434\u0435\u043b\u0438! \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0441\u0442\u0440\u043e\u0438\u043c \u043c\u0438\u0440\u043e\u0432\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043d\u0430\u0448\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u0434\u0430\u0435\u043c \u0432\u0435\u0440\u0448\u0438\u043d\u043d\u044b\u0439 \u0431\u0443\u0444\u0435\u0440 \u0434\u043b\u044f, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u0435\u0440\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0438 \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u043c \u0432\u0438\u0434\u0435\u043e\u0447\u0438\u043f\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438. ZBufferWriteEnable \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0431\u0435\u0437 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 Z-\u0431\u0443\u0444\u0435\u0440, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043a\u0430\u0439\u0431\u043e\u043a\u0441\u043e\u0432:<\/p>\n<pre><code class=\"cs\">        public void DrawModel(Model model, Transform transform, Material material)         {             Matrix matrix = Matrix.RotationY(transform.Rotation.Y * MathUtils.DegToRad)                  * Matrix.Translation(transform.Position);             device.SetTransform(TransformType.World, matrix);                          \/\/ Setup renderstate             device.RenderState.ZBufferWriteEnable = !material.DepthWrite;             device.SetTexture(0, material.Diffuse.Handle);              device.SetStreamSource(0, model.Buffer, 0);             device.DrawPrimitives(PrimitiveType.TriangleList, 0, model.PrimitiveCount);         } <\/code><\/pre>\n<p>  \u0418 \u0440\u0438\u0441\u0443\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u044c\u043a\u0443:<\/p>\n<pre><code class=\"cs\"> Model model; Material mat; Transform t;  void Start() {     model = Model.FromFile(\"model.mdl\");      mat = new Material();     mat.Diffuse = Texture2D.FromFile(\"test.tex\"); }  void Update() {     t = new Transform();     t.Position.Z = 150;     t.Rotation.Y += 0.1f;      graphics.DrawModel(model, t, mat); } <\/code><\/pre>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043a\u0440\u0443\u0442\u044f\u0449\u0438\u0439\u0441\u044f \u043a\u0443\u0431\u0438\u043a \u0438\u043b\u0438 \u043b\u044e\u0431\u0430\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u0430\u044f 3D-\u043c\u043e\u0434\u0435\u043b\u044c!<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/96f\/1a5\/b74\/96f1a5b74aa3ea68318f353c8f92ab08.jpg\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/96f\/1a5\/b74\/96f1a5b74aa3ea68318f353c8f92ab08.jpg\" data-blurred=\"true\"\/><\/div>\n<p>  <\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/65efc6c7d1b5b66d8d9aa966\" data-style=\"\" id=\"65efc6c7d1b5b66d8d9aa966\" width=\"\"><\/div>\n<\/div>\n<p>  \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432\u0432\u043e\u0434\u0430. \u0422\u0443\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u043d\u0435\u0442, \u043b\u043e\u0432\u0438\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u044f KeyUp\/KeyDown \u0444\u043e\u0440\u043c\u044b \u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u043d\u043e\u043f\u043a\u0430\u043c \u0438\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435. <\/p>\n<pre><code class=\"cs\">public Input(Form parentForm)         {             keyState = new bool[(int)GamepadKey.Count];              parentForm.KeyPreview = true;              parentForm.KeyDown += new KeyEventHandler(OnKeyDown);             parentForm.KeyUp += new KeyEventHandler(OnKeyUp);         }          private GamepadKey ResolveKeyCode(Keys key)         {             GamepadKey k = GamepadKey.Count;              switch (key)             {                 case Keys.Left:                     k = GamepadKey.Left;                     break;                 case Keys.Right:                     k = GamepadKey.Right;                     break;                 case Keys.Up:                     k = GamepadKey.Up;                     break;                 case Keys.Down:                     k = GamepadKey.Down;                     break;                 case Keys.Return:                     k = GamepadKey.OK;                     break;             }              return k;         }          void OnKeyUp(object sender, KeyEventArgs e)         {             GamepadKey key = ResolveKeyCode(e.KeyCode);              if (key != GamepadKey.Count)                 SetKeyState(key, false);         }          void OnKeyDown(object sender, KeyEventArgs e)         {             GamepadKey key = ResolveKeyCode(e.KeyCode);              if (key != GamepadKey.Count)                 SetKeyState(key, true);         }          public bool GetKeyState(GamepadKey key)         {             return keyState[(int)key];         }          private void SetKeyState(GamepadKey key, bool state)         {             keyState[(int)key] = state;         } <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0430\u0448\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u043a\u043e\u0439 \u0432 \u0438\u0433\u0440\u0435 (\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043a\u0430 \u0435\u0449\u0451 \u043d\u0435\u0442). \u0421\u0430\u043c\u0430\u044f-\u0441\u0430\u043c\u0430\u044f \u043e\u0441\u043d\u043e\u0432\u0430 \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0433\u0440\u044b \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0430 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c, \u043f\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u0433\u0435\u0439\u043c\u043f\u043b\u0435\u044e!<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c: \u0413\u0435\u0439\u043c\u043f\u043b\u0435\u0439<\/font><\/h2>\n<p>  <\/p>\n<blockquote><p><b>\u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440<\/b>: \u0438\u0433\u0440\u0430 \u0431\u044b\u043b\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0430\u044f, \u043d\u043e \u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0434\u0435\u043c\u043a\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f PowerVR MBX \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f Axim X51v. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e Update-\u0442\u0430\u0439\u043c\u0435\u0440\u0430, \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u0434\u0435\u043b\u044c\u0442\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0430 \u0438\u0433\u0440\u0430 \u043f\u0440\u0438\u0431\u0438\u0442\u0430 \u043a \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u043e\u0442\u0440\u0435\u0437\u043a\u0430\u043c \u0438 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430\u043c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438!<\/p><\/blockquote>\n<p>  \u0418\u0442\u0430\u043a, \u043a\u0430\u043a \u0436\u0435 \u0438\u0433\u0440\u044b \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u00ab\u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c\u00bb? \u041f\u043e \u0444\u0430\u043a\u0442\u0443, \u043e\u0431\u044b\u0447\u043d\u043e \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u0435\u0434\u0435\u043c: \u0444\u043e\u043d\u043e\u0432\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u0430 \u0438 \u0434\u043e\u0440\u043e\u0433\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0440\u043e\u043b\u043b\u044f\u0442\u0441\u044f \u0438 \u0442\u0435\u043b\u0435\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u0440\u0443\u0433 \u0437\u0430 \u0434\u0440\u0443\u0433\u043e\u043c, \u043a\u043e\u0433\u0434\u0430 \u043e\u0434\u043d\u0430 \u0438\u0437 \u0447\u0430\u0441\u0442\u0435\u0439 \u0443\u0445\u043e\u0434\u044f\u0442 \u0437\u0430 \u044d\u043a\u0440\u0430\u043d, \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u044d\u0444\u0444\u0435\u043a\u0442 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0438. \u0418 \u044d\u0442\u0430 \u0442\u0435\u0445\u043d\u0438\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0438\u0433\u0440\u0430\u0445! \u0427\u0442\u043e \u0436\u0435 \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u0448\u0438\u043d\u043e\u043a, \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043b\u0430\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u043c\u044b \u0435\u0434\u0435\u043c \u043d\u0430 \u043d\u0438\u0445, \u044d\u0442\u043e \u043e\u043d\u0438 \u0435\u0434\u0443\u0442 \u043d\u0430 \u043d\u0430\u0441! \u041f\u043e \u0438\u0442\u043e\u0433\u0443 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u044d\u0444\u0444\u0435\u043a\u0442 \u0431\u0443\u0434\u0442\u043e \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u043a\u0443\u0434\u0430-\u0442\u043e \u0435\u0434\u0435\u043c \u0438 \u0443\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u043e\u0442 \u043c\u0430\u0448\u0438\u043d\u043e\u043a, \u0445\u043e\u0442\u044f \u043d\u0430 \u0434\u0435\u043b\u0435 \u044d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a!<\/p>\n<p>  \u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0432\u0435\u0449\u0438 \u0432 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u043b\u044e\u0431\u043e\u0439 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u0433\u0440\u044b, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u0412 \u043d\u0430\u0448\u0435\u0439 \u0438\u0433\u0440\u0435 \u043d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0433\u0440\u0430\u0444\u0430 \u0441\u0446\u0435\u043d\u044b \u0441 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439, \u0438\u043b\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, ECS. \u0425\u0432\u0430\u0442\u0438\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/797547\/\">Half-Life<\/a>), \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442 <b>World<\/b> \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u0430\u0434\u0440, \u0432\u044b\u0437\u044b\u0432\u0430\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u0435\u0433\u043e \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438:<\/p>\n<pre><code class=\"cs\">    public abstract class Entity     {         public Transform Transform;          public abstract void Update();         public abstract void Draw();     } <\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"cs\">        public void Spawn(Entity ent)         {             if(ent != null)                 Entities.Add(ent);         }          public void Remove(Entity ent)         {             entityRemovalList.Add(ent);         }          public void Update()         {             sky.Update();             renderer.Update();             spawner.Update();              foreach (Entity ent in Entities)                 ent.Update();              foreach (Entity ent in entityRemovalList)                 Entities.Remove(ent);              entityRemovalList.Clear();         }          public void Draw()         {             sky.Draw();              renderer.Draw();              foreach (Entity ent in Entities)                 ent.Draw();         } <\/code><\/pre>\n<p>  \u0421\u0430\u043c\u044b\u043c \u043f\u0435\u0440\u0432\u044b\u043c \u043d\u0430\u0448\u0438\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043c\u0430\u0448\u0438\u043d\u043a\u0430 \u0438\u0433\u0440\u043e\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c! <br \/>  \u041c\u043e\u0434\u0435\u043b\u044c\u043a\u0438 \u044f \u0432\u0437\u044f\u043b \u043b\u043e\u0443\u043f\u043e\u043b\u0438 \u0441\u043e \u0441\u043a\u0435\u0442\u0447\u0444\u0430\u0431\u0430, \u0432\u043e\u0442 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 <a href=\"https:\/\/sketchfab.com\/3d-models\/vaz-2199-2199-a205332373bc4610a3d3487f731c0e13\">\u0412\u0410\u0417 21099<\/a> \u0438 <a href=\"https:\/\/sketchfab.com\/3d-models\/fox-mk1-volkswagen-golf-mk1-8dc118c3e2ce40a2b7d550b0ae404949\">VW Golf Mk2<\/a>. \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0430\u0432\u0442\u043e\u0440\u0430\u043c \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0437\u0430 \u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u0443!<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/f26\/ebf\/e39\/f26ebfe3975c9dccc7925933ee30fff8.png\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/f26\/ebf\/e39\/f26ebfe3975c9dccc7925933ee30fff8.png\"\/><\/div>\n<p>  \u041d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u0441\u044f \u043e\u0442 Entity \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0441 \u043b\u043e\u0433\u0438\u043a\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0445 \u043a\u043d\u043e\u043f\u043e\u043a \u0432\u043b\u0435\u0432\u043e \u0438 \u0432\u043f\u0440\u0430\u0432\u043e, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043d\u0438\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u043c\u0430\u0448\u0438\u043d\u043a\u0438 \u0438, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u043c\u0430\u0448\u0438\u043d\u043a\u0443 \u043f\u0443\u0442\u0451\u043c \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0439 X \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043f\u043e\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u00ab\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u00bb \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u043c\u0430\u0448\u0438\u043d\u043a\u0438. \u0414\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430, \u043c\u044b \u0442\u0430\u043a\u0436\u0435 \u043f\u043b\u0430\u0432\u043d\u043e \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u043c\u0430\u0448\u0438\u043d\u043a\u0443 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u043c \u0430-\u043b\u044f EaseIn\/EaseOut:<\/p>\n<pre><code class=\"cs\">            float hVel = Engine.Current.Input.GetKeyState(GamepadKey.Left) ? -1 : (Engine.Current.Input.GetKeyState(GamepadKey.Right) ? 1 : 0);              Transform.Position.X += hVel * SteerSpeed;             Transform.Rotation.Y = MathUtils.lerp(Transform.Rotation.Y, 180 + (hVel * 35), 0.1f); <\/code><\/pre>\n<p>  <\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/65efcc546748d7d46f755701\" data-style=\"\" id=\"65efcc546748d7d46f755701\" width=\"\"><\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043c\u0430\u0448\u0438\u043d\u043a\u0430 \u0433\u0434\u0435-\u0442\u043e \u00ab\u0435\u0437\u0434\u0438\u043b\u0430\u00bb. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u0435\u043c \u0432 \u0431\u043b\u0435\u043d\u0434\u0435\u0440\u0435 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u0443\u0441\u043e\u043a \u0434\u043e\u0440\u043e\u0433\u0438 \u0441 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u0430:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/c4f\/8e9\/a35\/c4f8e9a352bce14e35dc521ba2e7edc9.png\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/c4f\/8e9\/a35\/c4f8e9a352bce14e35dc521ba2e7edc9.png\"\/><\/div>\n<p>  \u0410 \u0437\u0430\u0442\u0435\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0435\u043d\u0434\u0435\u0440\u0435\u0440 \u0444\u043e\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043a\u0440\u043e\u043b\u043b\u0438\u0442\u044c \u0434\u0432\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 seamless-\u043a\u0443\u0441\u043a\u0430 \u0443\u0440\u043e\u0432\u043d\u044f \u0438 \u043a\u0430\u043a \u044f \u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b \u0440\u0430\u043d\u0435\u0435, \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0435\u043b\u0435\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0434\u0440\u0443\u0433 \u0437\u0430 \u0434\u0440\u0443\u0433\u043e\u043c, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u044d\u0444\u0444\u0435\u043a\u0442 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u0438.<\/p>\n<pre><code class=\"cs\">        public SectorRenderer()         {             road = Model.FromFile(\"road.mdl\");             roadMaterial.Diffuse = Texture2D.FromFile(\"road.tex\");              terrain = Model.FromFile(\"terrain.mdl\");             terrainMaterial.Diffuse = Texture2D.FromFile(\"grass.tex\");              sector1.Position.Y = -4;             sector2.Position.Y = -4;             sector2.Position.Z = SectorSize;         }          public void Update()         {             sector1.Position.Z -= ScrollingSpeed;             sector2.Position.Z -= ScrollingSpeed;              if (sector1.Position.Z + SectorSize &lt; 0)                 sector1.Position.Z = SectorSize;              if (sector2.Position.Z + SectorSize &lt; 0)                 sector2.Position.Z = SectorSize;         }          public void Draw()         {             Engine.Current.Graphics.DrawModel(road, sector1, roadMaterial);             Engine.Current.Graphics.DrawModel(terrain, sector1, terrainMaterial);             Engine.Current.Graphics.DrawModel(road, sector2, roadMaterial);             Engine.Current.Graphics.DrawModel(terrain, sector2, terrainMaterial);         } <\/code><\/pre>\n<p>  \u0413\u0434\u0435 <b>terrain.mdl<\/b> \u2014 \u043e\u043a\u0440\u0443\u0436\u0430\u044e\u0449\u0438\u0439 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442, \u0430 <b>road.mdl<\/b> \u2014 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0430\u043c \u043c\u0435\u0448 \u0434\u043e\u0440\u043e\u0433\u0438. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u044d\u0444\u0444\u0435\u043a\u0442:<\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/65efcc54ee68229db6fd0ec4\" data-style=\"\" id=\"65efcc54ee68229db6fd0ec4\" width=\"\"><\/div>\n<\/div>\n<p>  \u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u2014 \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e float \u0443 MBX Lite \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043a\u043b\u0438\u043f\u043f\u0438\u043d\u0433\u0430 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u043f\u0440\u0438 \u0431\u043b\u0438\u0436\u043d\u0435\u0439 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u043e\u0442\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u0432 0.1f. \u041c\u0435\u043d\u044f\u0435\u043c \u043d\u0430 1.0f \u0438 \u0432\u0441\u0451 \u0441\u043d\u043e\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \ud83d\ude42<br \/>  \u0427\u0443\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u044e, \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0432 \u043a\u0430\u043c\u0435\u0440\u0443 \u0432\u044b\u0448\u0435 \u0438 \u043d\u0430\u043a\u043b\u043e\u043d\u0438\u0432 \u043d\u0430 45 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0438 \u0438\u0433\u0440\u0430 \u0443\u0436\u0435 \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 Traffic Racer!<\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/65efcc55315cc3d4a1e25481\" data-style=\"\" id=\"65efcc55315cc3d4a1e25481\" width=\"\"><\/div>\n<\/div>\n<p>  \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0430\u0448\u0438\u043d \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u041c\u043e\u0434\u0435\u043b\u044c\u043a\u0438 \u0438\u0445 \u043c\u0430\u0448\u0438\u043d \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0438\u0433\u0440\u044b:<\/p>\n<pre><code class=\"cs\">        private static void LoadTrafficModel(int idx, string name)         {             PreloadedCars[idx] = Model.FromFile(name + \".mdl\");             PreloadedMaterials[idx].Diffuse = Texture2D.FromFile(name + \".tex\");         }          public static void Preload()         {             PreloadedCars = new Model[1];             PreloadedMaterials = new Material[1];              LoadTrafficModel(0, \"traffic1\");         } <\/code><\/pre>\n<p>  \u0410 \u0441\u0430\u043c\u0430 \u0438\u0445 \u043b\u043e\u0433\u0438\u043a\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430. \u041f\u0440\u0438 \u0441\u043f\u0430\u0432\u043d\u0435, \u043c\u0430\u0448\u0438\u043d\u043a\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u0435\u0431\u0435 \u043f\u043e\u043b\u043e\u0441\u0443, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u0435\u0445\u0430\u0442\u044c \u0438 \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u044b\u0439 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043d\u043e\u0441\u0438\u0442 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0432 \u0438\u0433\u0440\u0443:<\/p>\n<pre><code class=\"cs\">            Rand rand = new Random();             Transform.Position.X = Game.Current.world.PickLane(rand .Next(0, 4));             Transform.Position.Y = Game.Current.world.Player.Transform.Position.Y;             Transform.Position.Z = rand .Next(ZOffset, ZOffsetMax);              selectedBias = rand .Next(0, SpeedBias.Length - 1);              int carModel = rand .Next(0, PreloadedCars.Length - 1);             model = PreloadedCars[carModel];             material = PreloadedMaterials[carModel];<\/code><\/pre>\n<p>  \u0410 \u043f\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438, \u043c\u0430\u0448\u0438\u043d\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0435\u0445\u0430\u0442\u044c \u0432\u043d\u0438\u0437! \u041b\u043e\u0433\u0438\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0434\u043e \u0436\u0443\u0442\u0438, \u0434\u0430\u0436\u0435 \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0439.<\/p>\n<pre><code class=\"cs\">Transform.Position.Z -= BaseSpeed * SpeedBias[selectedBias];<\/code><\/pre>\n<p>  \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0439. \u041f\u043e\u043c\u043d\u0438\u043c, \u0447\u0442\u043e \u043c\u044b \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043b\u0438 Axis Aligned Bounding Box \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438? \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 <b>AABB <\/b> \u2014 \u0438\u043b\u0438 Rect vs rect: <\/p>\n<pre><code class=\"cs\">public bool Intersects(BoundingBox box)         {             return (X &lt; box.X + box.X2 &amp;&amp; Y &lt; box.Y + box.Y2 &amp;&amp; Z &lt; box.Z + box.Z2 &amp;&amp; box.X &lt; X + X2 &amp;&amp; box.Y &lt; Y + Y2 &amp;&amp; box.Z &lt; Z + Z2);         }<\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438, \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0439 Bounding Box \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430:<\/p>\n<pre><code class=\"cs\">Bounds = model.Bounds;             Bounds.X += Transform.Position.X;             Bounds.Y += Transform.Position.Y;             Bounds.Z += Transform.Position.Z;<\/code><\/pre>\n<p>  \u0417\u0430\u0442\u0435\u043c \u0438\u0442\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u043f\u043e \u0441\u043f\u0438\u0441\u043a\u0443 \u0432\u0441\u0435\u0445 \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 \u0441\u0446\u0435\u043d\u0435, \u0438 \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u043a\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430, \u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u0441 \u043c\u0430\u0448\u0438\u043d\u043a\u043e\u0439 \u0438\u0433\u0440\u043e\u043a\u0430. \u0415\u0441\u043b\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c, \u0442\u043e \u043f\u043e\u043c\u0435\u0447\u0430\u0435\u043c \u043c\u0430\u0448\u0438\u043d\u043a\u0443 \u0438\u0433\u0440\u043e\u043a\u0430 \u043a\u0430\u043a \u0440\u0430\u0437\u0431\u0438\u0442\u0443\u044e \u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0438\u0433\u0440\u043e\u043a\u0443 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u043d\u0443\u0442\u044c \u0438\u0433\u0440\u0443.<\/p>\n<pre><code class=\"cs\">             foreach (Entity ent in Game.Current.World.Entities)             {                 if (ent is TrafficCar)                 {                     if (Player.Bounds.Intersects(((TrafficCar)ent).Bounds))                     {                         \/\/ TODO: Damage logic                         Player.IsDestroyed = true;                     }                 }             }<\/code><\/pre>\n<p>  \u0423\u0436\u0435 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u043d\u0430 \u0438\u0433\u0440\u0443. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0435 \u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0438\u0435 \u2014 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0430 \u043f\u0440\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438 \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043a\u043e\u0439 \u0438 \u0434\u043b\u044f \u0434\u0435\u043c\u043a\u0438 \u043f\u043e\u043a\u0430-\u0447\u0442\u043e \u0445\u0432\u0430\u0442\u0438\u0442.<\/p>\n<pre><code class=\"cs\">        public void Draw()         {             string scoreFmt = string.Format(\"Score: {0} x{1}\", Game.Current.world.Statistics.Score, 1);             Engine.Current.Graphics.DrawString(scoreFmt, 15, 15, StatsColor);              if (Game.Current.world.Player.IsDestroyed)             {                 int measure = Engine.Current.Graphics.MeasureString(RestartString);                 Engine.Current.Graphics.DrawString(\"Press Return to restart\", Engine.Current.Graphics.ViewWidth \/ 2 - (measure \/ 2), Engine.Current.Graphics.ViewHeight \/ 2, StatsColor);             }         } <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c:<\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/65efcc554c5bea9d8a15b9cb\" data-style=\"\" id=\"65efcc554c5bea9d8a15b9cb\" width=\"\"><\/div>\n<\/div>\n<p>  \u041f\u0440\u0430\u0432\u0434\u0430, \u0447\u0442\u043e \u043d\u0430 \u041c\u041a\u0410\u0414\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u0435\u0447\u0435\u0440 \u0442\u0430\u043a\u043e\u0435? \u042f \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0441 \u041c\u0421\u041a \ud83d\ude42<\/p>\n<h2><font color=\"#1c22be\">\u276f<\/font> <font color=\"#454cee\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/font><\/h2>\n<p>  \u0412\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u0440\u043e PowerVR MBX! \u0421 \u0432\u044b\u0445\u043e\u0434\u043e\u043c iPhone, \u044d\u0442\u043e\u0442 GPU \u0434\u0430\u043b \u0442\u043e\u043b\u0447\u043e\u043a \u0434\u043b\u044f \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0445 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0438\u0433\u0440 \u0441 \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0438, \u0431\u043b\u0438\u0437\u043a\u0438\u043c \u043a \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u043c \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u043c \u043a\u043e\u043d\u0441\u043e\u043b\u044f\u043c\u2026 \u0436\u0430\u043b\u044c, \u0447\u0442\u043e \u0437\u043e\u043b\u043e\u0442\u0430\u044f \u044d\u0440\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445, \u0441\u0430\u043c\u043e\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u0445 \u0438 \u0431\u0435\u0437\u0434\u043e\u043d\u0430\u0442\u043d\u044b\u0445 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0438\u0433\u0440 \u0438 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430\u0441\u044c \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0430 iPhone 5 \ud83d\ude41<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u0430<\/b>                         <\/p>\n<div class=\"spoiler_text\"><a href=\"https:\/\/leonardo.osnova.io\/3793acb7-b77a-5d05-9287-cd17f6d3010f\/-\/format\/mp4\/\">leonardo.osnova.io\/3793acb7-b77a-5d05-9287-cd17f6d3010f\/-\/format\/mp4<\/a>  <\/div>\n<\/p><\/div>\n<p>  \u0412 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u043c \u0436\u0435, \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0431\u044b\u043b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u0438 \u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u0435\u043b\u0435\u043d \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043c\u043e\u0438\u0445 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439, \u0434\u0430\u0436\u0435 \u0442\u0435\u0445, \u043a\u0442\u043e \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043b \u0438\u0433\u0440\u044b! \u0411\u044b\u043b \u0443 \u0432\u0430\u0441 Dell Axim X51v? \u041f\u0438\u0448\u0438\u0442\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445!<\/p>\n<p>  \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u0435\u043c\u043a\u0438 \u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 \u043c\u043e\u0451\u043c <a href=\"https:\/\/github.com\/monobogdan\/wmgame\">\u0433\u0438\u0442\u0445\u0430\u0431\u0435<\/a>. \u0410 \u0435\u0449\u0451 \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c <a href=\"https:\/\/t.me\/monobogdann\">Telegram-\u043a\u0430\u043d\u0430\u043b<\/a>, \u0433\u0434\u0435 \u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u044e \u0431\u044d\u043a\u0441\u0442\u0435\u0439\u0434\u0436 \u0441\u0442\u0430\u0442\u0435\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b!<\/p>\n<hr\/>\n<p>  <\/p>\n<h4><font color=\"#454cee\">\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0437\u0430\u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u044d\u0442\u043e:<\/font><\/p>\n<ul>\n<li>\u27a4 <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/797329\/\">\u041c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u044d\u043a\u0440\u0430\u043d\u0447\u0438\u043a\u0438 \u0432 \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445: \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u043e \u0433\u0430\u0439\u0434 \u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0438\u0441\u043f\u043b\u0435\u044f\u0445<\/a><\/li>\n<li>\u27a4 <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/796567\/\">\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e Rust<\/a><\/li>\n<li>\u27a4 <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/793090\/\">\u041c\u0435\u043c, \u0441\u0442\u0430\u0432\u0448\u0438\u0439 \u043b\u0435\u0433\u0435\u043d\u0434\u043e\u0439: Doom \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0447\u0435\u043c \u0443\u0433\u043e\u0434\u043d\u043e<\/a><\/li>\n<li>\u27a4 <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/798937\/\">SQL \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 API<\/a><\/li>\n<li>\u27a4 <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/798931\/\">\u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438 \u041a\u043e\u0440\u0441\u0430\u0440\u043e\u0432<\/a><\/li>\n<\/ul>\n<p>  <i>\u0410 \u0435\u0449\u0451 \u044f \u0434\u0435\u0440\u0436\u0443 \u0432\u0441\u0435 \u0441\u0432\u043e\u0438 \u043c\u043e\u0431\u0438\u043b\u044b \u0432 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u0440\u0437\u0438\u043d\u0435 \u043f\u0440\u0438 \u0441\u0435\u0431\u0435 (\u0432 \u0441\u043c\u044b\u0441\u043b\u0435, \u0432\u0441\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430) \u2014 Timeweb. \u041f\u043e\u0442\u043e\u043c\u0443 \u043d\u0430\u0433\u043b\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0442\u043e, \u0447\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c \u0441\u0430\u043c \u2014 \u0432\u044d\u043b\u043a\u0430\u043c:<\/i><\/p>\n<p>  <a href=\"https:\/\/timeweb.cloud\/?i=106909\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/b5\/pj\/of\/b5pjofdoxth14ro-rjsrn7sbmiy.png\" data-src=\"https:\/\/habrastorage.org\/webt\/b5\/pj\/of\/b5pjofdoxth14ro-rjsrn7sbmiy.png\"\/><\/a><\/h4>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/799213\/\"> https:\/\/habr.com\/ru\/articles\/799213\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/7f6\/90b\/efe\/7f690befe380a72180be78f2e33e150e.png\" alt=\"image\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/7f6\/90b\/efe\/7f690befe380a72180be78f2e33e150e.png\"\/><\/div>\n<p>  \u041f\u043e\u0436\u0430\u043b\u0443\u0439, \u043c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u0432\u0430\u0441 \u043f\u043e\u043c\u043d\u044f\u0442, \u043a\u0430\u043a\u0438\u043c\u0438 \u0431\u044b\u043b\u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0438\u0433\u0440\u044b \u0434\u043e \u0438 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0445\u043e\u0434\u0430 \u043f\u0435\u0440\u0432\u043e\u0433\u043e <a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/708922\/\">iPhone<\/a>. \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 2000-\u0445 \u0433\u043e\u0434\u043e\u0432, \u0435\u0449\u0451 \u0434\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u044f\u0431\u043b\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0430, \u0438\u0433\u0440\u044b \u0434\u043b\u044f \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0431\u044b\u043b\u0438 \u0432\u0435\u0441\u044c\u043c\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438, \u043d\u043e \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u043c\u0438 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \u0446\u0435\u043b\u043e\u043c. \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 AppStore \u0432 2008 \u0433\u043e\u0434\u0443, \u043d\u0430 iPhone \u043d\u0430\u0447\u0430\u043b\u0438 \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u0440\u0430\u0441\u043e\u0447\u043d\u044b\u0435, \u043d\u0435\u0432\u0438\u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u043d\u043d\u0435\u0435 \u043f\u043e \u0443\u0440\u043e\u0432\u043d\u044e \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0435 2D \u0438 3D \u0438\u0433\u0440\u044b. \u041d\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u0438\u0445 \u0438\u0433\u0440 \u2014 \u043e\u0442\u043d\u044e\u0434\u044c \u043d\u0435 \u0437\u0430\u0441\u043b\u0443\u0433\u0430 Apple, \u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u043b\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 <b>PowerVR<\/b> (\u043f\u043e\u0434\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 Imagination Tech), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043c\u043e\u0433\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0432\u0438\u0434\u0435\u043e\u0447\u0438\u043f\u0430 Dreamcast \u0438 \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0430\u0441\u0441\u043e\u0432\u044b\u0445 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 3D-\u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u0435\u0439, \u0438\u043c\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u2014 <b>PowerVR MBX<\/b>! \u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438, \u0447\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u043b\u044e\u0431\u043e\u0439 \u0434\u0435\u0448\u0435\u0432\u044b\u0439 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a\u0443 \u0443\u0440\u043e\u0432\u043d\u044f PS3 \u0432 1080p, \u0430 \u0442\u043e \u0438 \u0432\u044b\u0448\u0435, \u043d\u043e \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0434\u0430\u0436\u0435 \u0443\u0440\u043e\u0432\u0435\u043d\u044c PS2 \u0431\u044b\u043b \u0440\u043e\u0441\u043a\u043e\u0448\u044c\u044e\u2026 \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0441 \u0432\u0430\u043c\u0438: \u0443\u0437\u043d\u0430\u0435\u043c \u043f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e-\u0443\u0441\u043a\u043e\u0440\u0435\u043d\u043d\u043e\u0439 3D-\u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430\u0445, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0430\u043a\u0443\u044e \u0444\u0438\u0440\u043c\u0435\u043d\u043d\u0443\u044e \u0444\u0438\u0448\u043a\u0443 PowerVR, \u043a\u0430\u043a \u0442\u0430\u0439\u043b\u043e\u0432\u044b\u0439 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433, \u0430 \u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u044b\u0439 \u041a\u041f\u041a <b>Dell Axim X51v<\/b> \u0441 MBX \u043d\u0430 \u0431\u043e\u0440\u0442\u0443, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043d\u0430\u043f\u0438\u0448\u0435\u043c 3D-\u0438\u0433\u0440\u0443 \u00ab\u043f\u0440\u043e \u0436\u0438\u0433\u0443\u043b\u0438\u00bb \u0441 \u043d\u0443\u043b\u044f! \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e? \u0422\u043e\u0433\u0434\u0430 \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0442!<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-370414","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/370414","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=370414"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/370414\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=370414"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=370414"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=370414"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}