Table of Contents

Modele proprii în OpenGL

ATENȚIE!

Folosirea modelelor proprii în aplicațiile de la teme NU poate înlocui geometria creată din cod!

Tehnica explicată aici poate fi folosită DOAR unde este specificat în mod special că este permisă această libertate!

Arta în jocuri

Până acum la laborator ați folosit câteva dintre meshele pe care le oferă framework-ul, ca să vedeți că operațiile învățate pe obiecte primitive funcționează la fel și pe cele cu geometrie mai complexă. De asemenea, ați avut și cerințe în care a trebuit să creați voi primitive, uneori chiar forme mai complexe alcătuite din mai multe astfel de obiecte.

În jocuri însă, puteți observă foarte ușor că rareori există vreo formă primitivă, toate fiind înlocuite de asset-uri mult mai complexe și interesante. Acestea nu sunt generate în cod cum ați făcut până acum, ci sunt create de dinainte în aplicații specializate 3D, trecând prin mai multe etape de dezvoltare.

Câteva dintre aceste aplicații care există și sunt folosite de profesioniști pentru dezvoltarea de jocuri:

Arta în framework-ul de OpenGL

În acest tutorial NU o să creăm modele 2D sau 3D de la zero, dar o să putem adăuga și integra modele care deja există pe internet, în framework-ul de OpenGL pe care îl folosiți pentru laboratoare și teme.

Sunt mai multe formate de mesh-uri pe care framework-ul le poate folosi (precum FBX sau OBJ), iar aici o să folosim o aplicație 3D pentru a obține corect aceste formate, mai exact Blender.

Hint: subiectul mapării texturilor pe geometrie este acoperit în laboratorul 9.

Metoda prezentată mai jos folosește în spate aceleași noțiuni explicate acolo.

Instalare Blender

Prima variantă: Instalare folosind Steam

Blender este accesibil de pe marketul Steam și este gratis de descărcat pentru orice utilizator.

  1. Creați un cont nou de Steam (dacă aveți un cont deja, săriți pasul acesta).
  2. Descărcați aplicația Steam aici.
  3. Căutați Blender în bara de search din dreapta sus.
  4. Descărcați Blender (o să apară în lista de aplicații din categoria Library de sus).
  5. Blender poate fi rulat direct din Library, apăsând pe butonul de Launch.

A doua variantă: Instalare de pe site-ul Blender

Blender este accesibil si de pe site-ul oficial Blender.

  1. Descărcați kit-ul de instalare Blender (selectați versiunea corespunzătoare OS-ului vostru).

Scurt ghid de folosire Blender

Navigarea în scenă

Adăugarea de modele 2D

Primul pas pentru a folosi un model 2D în framework este de a alege imaginea pe care vrem să o încărcăm. În cazul acestui tutorial, am ales următoarea imagine ca exemplu:

Poza aleasă mai sus are deja background-ul scos. Dacă vreți să folosiți o altă imagine care are un background, o soluție online de eliminare a acestuia ar fi aici.

Cu imaginea descărcată și Blender deschis, putem să începem import-ul acesteia în aplicație

Acum avem modelul gata de folosit în framework-ul de OpenGL deci nu mai este nevoie de Blender pentru pașii următori:

#include "TestCustomMesh.h"
 
using namespace m1;
 
TestCustomMesh::TestCustomMesh()
{
}
 
void TestCustomMesh::Init()
{
    Mesh* mesh = new Mesh("ghost");
    mesh->LoadMesh(PATH_JOIN(window->props.selfDir, RESOURCE_PATH::MODELS, "my_models/ghost"), "ghost.fbx");
    meshes[mesh->GetMeshID()] = mesh;
}
 
void TestCustomMesh::Update(float deltaTimeSeconds)
{
    glClearColor(0, 0, 0, 1);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glViewport(0, 0, window->props.resolution.x, window->props.resolution.y);
 
    RenderMesh(meshes["ghost"], glm::vec3(0.f));
}
 
void TestCustomMesh::FrameEnd()
{
    DrawCoordinateSystem();
}

Dacă apar probleme în afișarea modelului respectiv dar ați urmat exact pașii de mai sus, verificați Scale-ul la care se folosește acesta în framework: sunt șanse să fie prea mic sau prea mare.