«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
VSync در یونتی چیست ؟ :: گیم اور _ بازیسازی با unity + مطالب متفرقه

گیم اور _ بازیسازی با unity + مطالب متفرقه

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

به نام خدا
--
گروه قدیم ما promakers.ir یا پرومیکرز بود که بالای هزار اموزش توش ساخته بودم به اسم sajjad3011 ولی حیف ادمین سایتش عوض کرد
حالا سوالی بود کاری بود این شمارمه

قدیمیا دلم براتون تنگ شده... فقط معرفی کنید توی پیامک یا تماس یاد بیارید.
اگه جواب ندادم شاید موقعیت نداشته باشم.
بگید توی پیام از بچه های پرومیکرز هستید.

---
سوالی بود بذارید
نظر خصوصی نذارید
پاسخش سخته
دوست داشتید شماره بذارید تو واتساپ یا ایتا یا .... گروه بزنیم.
09358077198

بایگانی
پیوندها

VSync در یونتی چیست ؟

دوشنبه, ۵ بهمن ۱۳۹۴، ۰۴:۱۶ ب.ظ

منبع:gameover.blog.ir


VSync در یونتی چیست ؟

Vsync برای جلوگیری از تیک خوردن صفحه هست فکر کنم. عدد بین 0 و 1 و 2 قبول می کنه/// اگه صفر بدی wait نمی کنه برای وی سینک.


رندر(نمایش) در یونیتی می تونه با  refresh rate  (نرخ رفرش) از دستگاه نمایش تنظیم بشه به منظور جلوگیری از ایجاد پارگی یا tearing (از هم گسیختگی). شما می تونید تنظیم رو روی  every vertical blank (VBlank یا every second vertical blank یا هیچکدام قرار بدید .

برای این کار دو راه داریم: یکی اینکه مسیر Edit->project settings->Quality برید و تنظیمات رو انجام بدید.

روش دیگه کد نویسی هست. مثال :
[code]

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void Example() {
        QualitySettings.vSyncCount = 1;
    }
}

[/code]
دو این دو تاپیک هم بخونید برای مطالعه بیشتر:
https://en.wikipedia.org/wiki/Analog_television#Vertical_synchronization
https://en.wikipedia.org/wiki/Screen_tearing
اینم کل بحث ما در تلگرام:

خود دستگاه های آیفن همیشه Vsync هستن و ما انتخابی برای اون نداریم فکر کنم


بعضی وقتا یک چیزی مثل تیرینگ/Tearing  یا از هم گسیختگی وی صفحه ایجاد میشه موقع رندر


در وسط  رندر یا آپدیت اسکرین


قسمت بالای صفحه نمایش به اندازه ی یک بیت از پایین صفحه نمایش آدرس دهی میشه


یا به اصطلاح آفست میشه


و ما گزینه vsync  رو به هر صورت نمی تونیم بای آ ی او اس غیر فعال کنیم


اینو از اینجا خوندم http://answers.unity3d.com/questions/409576/vsync-on-or-off.html


واستا دارم بازم می خونم


حالا نمی دونم درست ترجمه کردم یا نه


🐥


اینم تو هلپ یونیتی هست معنیش کنید


It is possible to set Unity to switch frames only during the period where the display device is not updating, the so-called “vertical blank”. The VSync option on the Quality Settings synchronises frame switches with the device’s vertical blank or optionally with every other vertical blank. The latter may be useful if the game requires more than one device update to complete the rendering of a frame.





Tearing

The picture on the display device is not continuously updated but rather the updates happen at regular intervals much like frame updates in Unity. However, Unity’s updates are not necessarily synchronised with those of the display, so it is possible for Unity to issue a new frame while the display is still rendering the previous one. This will result in a visual artifact called “tearing” at the position onscreen where the frame change occurs.


file:///C:/Program%20Files/Unity/Editor/Data/Documentation/en/Manual/class-QualitySettings.html


http://stackoverflow.com/questions/21205340/what-is-vsync-count-in-unity3d


توی تکنولوژی نمایش امروزه یه اصلاحی هم هست به اسم VBlanck


در حقیقت زمانی هست بین آخرین عنصر یک فریم  یا محدوده ی نمایش


و آغاز اولین خط فریم بعدی


در زمان vblank  ثبات ها یا رجیسترهای نمایش، با داده های جدید برای هر خط/پیکسل نوشته میشن


اینکار اونقدر سریع هست که  بهش می گیم نو تایم یا no time


یعنی زمانی نداره


یا محسوب نمیشه


اینجا یک مقاله هست دارم می خونم


https://en.wikipedia.org/wiki/Analog_television#Vertical_synchronization


و این https://en.wikipedia.org/wiki/Screen_tearing


مبحثش خیلی تخصصی هست


ولی دارم می خونم


یه جورای مربوط به رندر عمودی میشه


h افقی


v عمودی


دقت کن دستگاه های مختلف روش خودشون رو توی رندر دارن


مثلا بعضی ها میان پیکسل ها رو دونه دونه با سرعت به صورت افقی رندر می کنن  و بعضیا عمودی


افقی یعنی اول نقاط خط اول صفحه نمایش رو رندر می کنن


و بعد می رن خط بعدی


و الی آخر


عمودی یعنی اول ستون اول رو رندر می کنن بعدش می رن ستون دوم و الی آخر....


Sync یعنی زمانبندی


داره می گه می تونیم با این گزینه فکر کنیم تعیین کنیم که رندر به چه صورت انجام بشه


بذار بازم دارم مطالعه می کنم


Vertical synchronization یه اپشن هست مربوط به کارت گرافیک میشه


که از نمایش بقیه اطلاعات حافظه ی گرافیک جلوگیری می کنه تا اینکه مانیتور چرخه یا سیکل رفرش جاری خودش رو تمام کنه و بعدش میره از حافظه گرافیک داده هایی رو که باید نمایش داده بشه رو می خونه


برای vertical blanking interval یا VBland اولویت به کارت ویدئو یا کارت گرافیک داده میشه تا خیلی سریع تصاویر ناحیه ی آف اسکرین  یعنی پشت صحنه رو به ناحیه ی صفحه نمایش توی حافظه کپی کنه تا قابل رویت بشه. به این کار دابل بافرینگ یا حافظه کردن موقتی دوگانه هم می گیم


البته مباحث حافظه رو بیشتر مهندسین نرم افزار می دونن که تو درس های گرافیک کامپیوتری یا برنامه نویسی سیستمی مطرح هست.


این کار باعث میشه به سادگی بین اونها سویچ بک بشه


بهش page flipping هم می گن که اعلب ازش با نام بافرینگ پینگ پونگ یاد میشه


یعنی به طور همزمان مانیتور می تونه یک بافر (حافظه موقت) رو نمایش بده و اطلاعات بعدی به سرعت روی بافر پس زمینه یا آف اسکرین بافر ترسیم می شه.


و هی بینشون پاسکاری می کنه


مثل پینگ پونگ


گرفتی چیشد؟


vsyc


یه گزینه هست برای اکثر سیستم ها که وقتی کارت گرافیک قادر به نمایش حافظه ی نمایش نباشه این گزینه به کار میاد

تا به طور عمودی بیاد و دیتای بافر پس زمینه رو رندر کنه
Every v blankیعنی هر بار که یک خلل عمودی یا فاصله عمودی در رندر ایجاد میشه بیا جبرانش کن.
Every Second v blankیعنی هر دومین فاصله خالی که تو زمان رندر ایجاد میشه یا هر دومین وقفه ای که رخ میده بیا جبرانش کن.

کپی شده از http://gameover.blog.ir


موافقین ۰ مخالفین ۰ ۹۴/۱۱/۰۵
مدیرکل

نظرات (۱)

سلام 
دست شما درد نکنه 
خیلی مطلب خوبی بود
پاسخ:
س.خدا رو شکر.
نظرات شما باعث دلگرمی ما میشه.
ممنون از لطف شما.
موفق باشید.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی