BLOG

  • ImGui::DragDrop

    Sürükle bırak operasyonu için ImGUI nin bize sağlamış olduğu drag drop isimli bir araç var. Kendi kodumda bir ağaç yapısındaki ögelerin birbirine sürüklenip bırakılarak parent-child ilişkisini kurmasını istiyordum. Kısacası şöyle. Başka bir öğenin üzerine bırakmak yerine boş alana bırakmak istersek şöyle bir kod ekleyebiliriz Kodun tamamı şöyle.

  • Zip Blender Files

    Blender dosyalarını sıkıştırmak için farklı metodlar var. Örneğin Edit->preferences->Save&Load->Compress File seçeneği seçerek dosyalarını kayıt ederken sıkıştırılmış bir şekilde kayıt edebilirsiniz. Ben ise 7zip programıyla arşivledim. Elde ettiğim verileri burada paylaşıyorum. Sıkıştırılan dosyalar hakkında Nasıl sıkıştırdığımı anlatmadan önce neyi sıkıştırdığımı anlatayım ki bir referans olsun. Benim 30 tane ardışık kayıt edilmiş dosyam vardı. Yaklaşık 80 GB’lık…

  • Pawn

    https://dev.epicgames.com/documentation/en-us/unreal-engine/pawn-in-unreal-engine Auto Posses Eğer bir pawn nesnesini sahneye yerleştirip oyuna başlarsak bu pawn ı kontrol edemediğimizi görebiliriz. Mouse klavye girdilerinin direk olarak bu yeni pawn’ı kontrol etmesinin istiyorsak. Nesneyi seçip details panel’den Auto Possess Player : Player0 yapabiliriz. Aynı şeyi kodla yapmak istersek: Bunu yaptıktan sonra oyunu başlattığımızda otomatik olarak yeni oluşturduğumuz pawn’ı kontrol ediyor…

  • Components

    Component Nedir? Blueprint editörde sol tarafta aktörümüze eklediğimiz, staticmesh, collider vb unsurlara component diyoruz. Her aktörün en azından bir tane componenenti olur (default scene root). Var olan componentler dışında kendi componentlerimizi de üretebiliriz. Component Nasıl Eklenir Hali hazırda blueprint editörün sol panelinde Add butonu ile ekleyebiliriz. Fakat biz burada C++ ile nasıl ekleyebileceğimizi göreceğiz. Class…

  • Fonksiyon ve Değişkenleri Blueprint’te Göstermek

    Değişkenleri Blueprint’te Göstermek In the Class Defaults Kodun içine gömülmüş değişkenleri ayarlamak için her seferinde kodla oynamak pratik bir iş değil. Unreal bize bu konuda bir esneklik sağlıyor. Değişkenin önüne ekleyeceğimiz UPROPERTY macrosu ile değişkeni blueprint içinde ya da nesne üzerinde değiştirmek mümkün. Eğer parametremizi read-only yapmak istersek: Edit yerine Visible kelimesini kullanmalıyız: In the…

  • Nesneleri Hareketlendirmek

    Hareket Fonksiyonları Oyun yapıyorsak nesnelerimizi hareket ettirmemiz gerekli. Bunu c++ ile yapabilmek için Actor sınıfının bize sağlamış olduğu bazı fonksiyonlar var. Bu fonksiyonlar benzer isimlerle blueprint’te de mevcut. Objelerimize mutlak konum veya rotasyon atamak için “SetActorLocation” ve “SetActorRotation” fonksiyonlarını kullanabiliriz. Başka bir şekilde ifade etmek gerekirse nesnemiz konumu ve açısını ayarlıyoruz. Fakat mutlak bir son…

  • Debug Text & Shapes

    Debug Text Metin halinde çıktı almak için iki tane metodumuz var: Aynı işlevi gören blueprint node’ları aşağıda verilmiştir. Formatlı Metinler Tıpkı C dilindeki printf fonksiyonu gibi formatlı bir şekilde çıktı almamız da mümkündür: 💡 When using %s parameters to include FStrings, the * operator must be used to return the TCHAR* required for the %s parameter. Debug…

  • igdkmdn64.sys

    DİKKAT: Bu tip işlemler tehlikeli olduğundan bilgisayarınızı tamamen bozma ve dosyalarınızı kaybetme riskiniz vardır. Bugün çalışırken birden bire mavi ekran aldım. Hata kodu şöyleydi: intel graphics kaynaklı bir hataymış ve çözümü için de DDU isimli bir araç kullanılıyormuş. Muhtemelen başka yolları da vardır fakat biraz tehlikeli olmasına rağmen ben bu yolu seçtim. DDU isimli araç…

  • SQLite – 2

    What is a Constraint  A constraint is a rule that’s applied to a column or set of columns in a database table with the goal of preserving the data integrity. Constraints enforce limits on the data type and the range of values that can be used within columns. If any action violates a constraint, that action is aborted. Constraint_Description_NOT NULLEnsures that a…

  • SQLite – 1

    The SQLite library includes a simple command-line utility named sqlite3 (or sqlite3.exe on windows) that allows the user to manually enter and execute SQL commands against an SQLite database. Select statement The SELECT statement is used to query the database. The result of a SELECT is zero or more rows of data where each row has a fixed number…

  • Bézier Curves

    Bézier Curves

    Bir eğrinin parametrik olarak tanımlanması için  Pierre Bézier tarafından ~1960 yıllarda bulunmuştur. P0, P1, P2, … PN olmak üzere n adet kontrol noktası bulunur. n eğrinin derecesini temsil eder ( 1->linear; 2->quadratic; 3->cubic; …). Eğer iki kontrol noktamız varsa P0 ve P1; (Linear) P0 noktasından P1 noktasına giden bir noktanın ardında bıraktığı iz olarak düşünebilirsiniz.…

  • SQLite – 0

    SQLite features SQLite is a software library that provides a relational database management system. The “lite” in SQLite means lightweight nature regarding setup, database administration, and required resources. SQLite has the following notable features: Self-Contained SQLite is “stand-alone” or “self-contained” in the sense that it has very few dependencies. It runs on any operating system, even stripped-down bare-bones…

  • CPP 063 – Execution Policy

    std algoritmalarının çalışma şeklinin paralel, sequential veya vectorized olup olmadığını belirlemek için kullanıyoruz.

  • CPP 062 – packaged_task & async

    packaged_task bir callable objeyi paketleyip sonucunu daha sonra kulanabiliriz. Senkron ya da asekron olarak çalışabilir. Eğer aynı thread de ise sekron olarak çalışır: Farklı thread’de asekron olarak da çalıştırabiliriz: packaged_task şablonu: Async packaged_task ile aşağı yukarı aynı işi yapıyor ama daha high level diyebiliriz. Sekron ya da asekron çalışabilir: future objesi implicitly olarak thread join…

  • CPP 060 – Thread Synchronization

    Progress Bar Bir fetcher thread ve bir progress bar thread’i arasındaki sekronizasyonu sağlamak için mutex ve flaglar(data_ready ve complete) kullandık. Threadlerin yaptıklarını özetlemek gerekirse: Fetcher thread Progres bar thread İşler bittince completed flag ile programdan çıkış yapıyoruz. Gördüğünüz üzere bu yaklaşım bu işi yapmak için en iyi yaklaşım değil. Çünkü bir çok yerde lock unlock…