Kayıtlar

DeltaTime nedir? Ne değildir?

Merhabalar. Bu yazımda deltaTime nedir, neden kullanılır gibi sorulara cevap vereceğim. DeltaTime nedir? DeltaTime, bir önceki frame'den bu frame'e geçen süre. Bir değişkendir yani. Bir bilgisayar saniyede 3 frame alıyorsa, deltaTime şunun gibi oluyor: 1. frame // deltaTime = 0.2 2. frame // deltaTime = 0.3 3. frame // deltaTime = 0.5 Farkettiyseniz 1 saniye sonunda bunların toplamı 1 oldu. Yani olay bu. Bu 3 deltaTime değişkeni birbiri eşit olmak zorunda değil. Peki biz kaç fps alırsak alalım, nasıl her bilgisayarda aynı derecede işlemler gerçekleşiyor? Örnek senaryo üzerinden gidelim. Şöyle bir scriptimiz olsun: class Object { GameObject player; //player position = vector3(0, 0, 0) kabul edelim. int speed = 10; void update() { player.transform.position.x = player.transform.position.x + speed * deltaTime } } Burada bilgisayarımızın 5 fps aldığını düşünelim ve aralarında geçen zaman aynı olsun. Yani 5 frame'de deltaTime = 1/5(

OpenGL World To Screen ve Screen To World

Merhabalar. Projem için gerekli olan w2s ve s2s fonksiyonlarını araştırıyordum. Ancak ingilizce kaynak bile az sayıda vardı ve hepsi anlaşılır değildi. Uzun bir uğraş istediğim sonuca ulaştım ve kaynak yetersizliğinden dolayı kendi derlediğim bu kodları internette paylaşmaya karar verdim. glm::vec2 WorldToScreen(glm::mat4 viewMatrix, glm::mat4 projectionMatrix, glm::vec3 point) { glm::mat4 mvpmatrix = projectionMatrix * viewMatrix; const float *pSource = (const float *)glm::value_ptr(mvpmatrix); glm::vec4 clipCoords; clipCoords.x = point.x * pSource[0] + point.y * pSource[4] + point.z * pSource[8] + pSource[12]; clipCoords.y = point.x * pSource[1] + point.y * pSource[5] + point.z * pSource[9] + pSource[13]; clipCoords.z = point.x * pSource[2] + point.y * pSource[6] + point.z * pSource[10] + pSource[14]; clipCoords.w = point.x * pSource[3] + point.y * pSource[7] + point.z * pSource[11] + pSource[15]; glm::vec3 normalizedDeviceCoordinates; normalizedDeviceCoordinates