در این مطلب، ویدئو من 40 هزار تیغه چمن بیدرنگ را با پایتون شبیه سازی کردم با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:06:41
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,080 –> 00:00:01,760
همانطور که در عنوان می گوید، من موفق شدم
2
00:00:01,760 –> 00:00:04,160
40 000 تیغه تعاملی
3
00:00:04,160 –> 00:00:06,080
چمن را در زمان واقعی با استفاده از پایتون و
4
00:00:06,080 –> 00:00:08,000
pygame رندر کنم، زیرا می خواستم
5
00:00:08,000 –> 00:00:10,160
برای بازی ای که دارم روی آن کار می کنم، چمن پرفورمنس را اجرا کنم.
6
00:00:10,160 –> 00:00:12,320
7
00:00:12,320 –> 00:00:14,480
مثالی از اینکه چرا پایتون
8
00:00:14,480 –> 00:00:16,960
برای توسعهدهندگان بازی کند نیست و دو
9
00:00:16,960 –> 00:00:18,880
مثال خوبی از این که چگونه میتوانید
10
00:00:18,880 –> 00:00:21,600
جلوههای بصری را در پایتون بهینه کنید هر تیغهای از چمن
11
00:00:21,600 –> 00:00:23,359
در شبیهسازی به صورت جداگانه
12
00:00:23,359 –> 00:00:26,080
تعاملی است، همه آنها تحت تأثیر
13
00:00:26,080 –> 00:00:28,320
باد قرار میگیرند و همچنین پیادهسازی از آن استفاده میکند.
14
00:00:28,320 –> 00:00:30,800
مفسر پیشفرض see python که
15
00:00:30,800 –> 00:00:32,800
تقریباً همه از آن استفاده میکنند، همانی است که
16
00:00:32,800 –> 00:00:34,640
از وبسایت پایتون دریافت میکنید،
17
00:00:34,640 –> 00:00:36,079
اگر از کامپایلر پایتون مانند pi pi استفاده کنم، احتمالاً میتوانم آن را سریعتر کنم،
18
00:00:36,079 –> 00:00:38,719
19
00:00:38,719 –> 00:00:40,239
اما واقعاً به بیش از چهل هزار
20
00:00:40,239 –> 00:00:42,800
تیغه روی صفحه نیاز ندارم. زمان به هر حال
21
00:00:42,800 –> 00:00:44,480
در طرف بازی پای همه چیز است، من از pygame 2 استفاده می کنم
22
00:00:44,480 –> 00:00:46,640
که رندر آن
23
00:00:46,640 –> 00:00:49,200
تقریباً دو برابر سریعتر از pygame 1.9 point
24
00:00:49,200 –> 00:00:51,360
x در اکثر برنامه های کاربردی از
25
00:00:51,360 –> 00:00:52,800
تجربه گذشته است، من تخمین می زنم که
26
00:00:52,800 –> 00:00:54,399
تنظیمات رندر در این
27
00:00:54,399 –> 00:00:57,440
برنامه خاص lication در سمت پایین است اما
28
00:00:57,440 –> 00:00:59,760
نمی توانم با اطمینان بگویم زیرا به
29
00:00:59,760 –> 00:01:02,719
دلایل دیگر در pygame 1.9 point x اجرا نمی شود،
30
00:01:02,719 –> 00:01:04,640
همانطور که احتمالاً می توانید بگویید
31
00:01:04,640 –> 00:01:07,920
مثال من 40000 تیغه از عنوانی
32
00:01:07,920 –> 00:01:10,400
نیست که نشان نداده ام. اما به دلیل اینکه نیاز به
33
00:01:10,400 –> 00:01:12,159
برخی از افکتها خاموش است و به
34
00:01:12,159 –> 00:01:15,040
نظر خوب نمیرسد، اینجا یک گیفی است که من با
35
00:01:15,040 –> 00:01:18,479
20000 تیغه با سرعت 100 فریم در ثانیه 20000 دارم،
36
00:01:18,479 –> 00:01:20,240
اگر شما آن را محاسبه کنید
37
00:01:20,240 –> 00:01:23,119
که 40000 تیغه است.
38
00:01:23,119 –> 00:01:26,640
چمن با سرعت 50 فریم در ثانیه از آنجایی که تا حد زیادی به
39
00:01:26,640 –> 00:01:28,640
صورت خطی مقیاس می شود، مربی این پروژه
40
00:01:28,640 –> 00:01:30,320
در حال حاضر برای مشتریان در دسترس
41
00:01:30,320 –> 00:01:31,840
است، لینکی در توضیحات وجود دارد، اما اگر
42
00:01:31,840 –> 00:01:33,439
به این ویدیو خوب توجه کنید،
43
00:01:33,439 –> 00:01:34,799
ممکن است بتوانید خودتان سیستم چمن خود را بسازید
44
00:01:34,799 –> 00:01:36,880
. همچنین پس از یک سال یا بیشتر
45
00:01:36,880 –> 00:01:38,960
، کد را برای مالکیت عمومی منتشر خواهم کرد،
46
00:01:38,960 –> 00:01:40,960
اکنون زمان آن رسیده است که
47
00:01:40,960 –> 00:01:43,040
توضیح دهم که چگونه همه کار می کند، هدف من این بود
48
00:01:43,040 –> 00:01:45,520
49
00:01:45,520 –> 00:01:47,520
که علف های فردی را قابل تعامل و متاثر از باد قرار دهم که به اندازه کافی سریع اجرا شود تا
50
00:01:47,520 –> 00:01:49,439
ده ها هزار تیغ را به طور
51
00:01:49,439 –> 00:01:51,840
همزمان مدیریت کند. بسیاری از شما بازی پای با تجربه تر
52
00:01:51,840 –> 00:01:53,600
کاربران میدانند که اگر فقط سعی کنید
53
00:01:53,600 –> 00:01:56,159
40000 تصویر را در زمان واقعی رندر کنید، در
54
00:01:56,159 –> 00:01:58,320
نهایت با یک آشفتگی
55
00:01:58,320 –> 00:02:00,799
مواجه میشوید، این اولین مانع بود، زیرا نمیتوانید
56
00:02:00,799 –> 00:02:02,960
بسیاری از تصاویر را ارائه دهید. پیادهسازی باید
57
00:02:02,960 –> 00:02:04,880
شامل راهی برای کاهش تعداد
58
00:02:04,880 –> 00:02:07,759
تصاویر باشد ارائه شده در هر فریم اولین غریزه من این
59
00:02:07,759 –> 00:02:10,080
بود که آن را به یک
60
00:02:10,080 –> 00:02:12,879
سیستم کاشی ساخته شده بر روی یک فرهنگ لغت یا نقشه هش
61
00:02:12,879 –> 00:02:15,599
برای شما کاربران غیر پایتون تبدیل کنم، معلوم شد
62
00:02:15,599 –> 00:02:18,239
که اولین غریزه ای که به وجود آمد این امکان را
63
00:02:18,239 –> 00:02:20,400
به من می دهد که از
64
00:02:20,400 –> 00:02:22,080
جستجوهای سریع برای ساخت تیغه ها استفاده کنم.
65
00:02:22,080 –> 00:02:25,120
تعاملی من میتوانم کاشیها را نزدیک
66
00:02:25,120 –> 00:02:26,879
نیرویی که بر چمن تأثیر میگذارد به جای
67
00:02:26,879 –> 00:02:28,560
جستجوی تک تک تیغههای
68
00:02:28,560 –> 00:02:30,400
موجود جستجو کنم، بنابراین این چیزی است که تا
69
00:02:30,400 –> 00:02:32,720
کنون داشتهایم، ما یک سیستم کاشی از چمن داریم
70
00:02:32,720 –> 00:02:34,720
که در آن هر کاشی حاوی چندین
71
00:02:34,720 –> 00:02:37,280
تیغه چمن است، به طوری که که بسیاری از کاشیها
72
00:02:37,280 –> 00:02:38,959
باید رندر شوند و ما میتوانیم به
73
00:02:38,959 –> 00:02:41,519
سرعت تیغهها را در نزدیکی یک مکان خاص جستجو کنیم،
74
00:02:41,519 –> 00:02:42,800
ممکن است برخی از شما متوجه مشکلی در اینجا شده باشید،
75
00:02:42,800 –> 00:02:45,200
اگرچه گروهبندی تیغهها به
76
00:02:45,200 –> 00:02:47,200
کاشیها باعث نمیشود که آنها به تنهایی سریعتر رندر شوند.
77
00:02:47,200 –> 00:02:50,080
تیغههای اولیه در یک
78
00:02:50,080 –> 00:02:52,239
کاشی هنوز باید به تنهایی پردازش و
79
00:02:52,239 –> 00:02:54,160
ارائه شوند، مفهوم
80
00:02:54,160 –> 00:02:56,800
کاشی تنها یک انتزاع از
81
00:02:56,800 –> 00:02:58,480
دیدگاه رندر و داده است، در
82
00:02:58,480 –> 00:03:00,080
این مرحله جادوی واقعی
83
00:03:00,080 –> 00:03:02,959
این پیادهسازی برای
84
00:03:02,959 –> 00:03:04,480
کسانی از شما که در کش
85
00:03:04,480 –> 00:03:07,200
در این زمینه نمیدانم حافظه نهان چیست، مفهوم
86
00:03:07,200 –> 00:03:09,599
ذخیره برخی از دادههای از پیش محاسبهشده برای
87
00:03:09,599 –> 00:03:12,159
استفاده مجدد سریع است. ذخیرهسازی بعداً
88
00:03:12,159 –> 00:03:14,959
حافظه را با عملکرد عوض میکند، زمانی که از همان
89
00:03:14,959 –> 00:03:16,959
دادهها به طور مکرر برای
90
00:03:16,959 –> 00:03:18,560
اعمال صحیح کش کردن در چمن استف