Commit 3a987ad9 authored by Bošániová Monika's avatar Bošániová Monika
Browse files

LaTex edit and user cannot change centre of color faces

parent 6e154368
......@@ -27,14 +27,14 @@ public class ColorButtons : MonoBehaviour
if (Physics.Raycast(ray, out RaycastHit hit))
{
Renderer mesh = hit.collider.GetComponent<Renderer>();
if(
if((
mesh.name == "Front" ||
mesh.name == "Back" ||
mesh.name == "Up" ||
mesh.name == "Down" ||
mesh.name == "Right" ||
mesh.name == "Left"
)
) && mesh.tag != "Centre")
if (actualMaterial)
{
mesh.material = actualMaterial;
......
......@@ -29,9 +29,9 @@ Aplikácia je rozdelená na dve scény, a to menu a samotný riešič. Prepínan
\hline
Názov tlačidla & Funkcia tlačidla \\ [0.5ex]
\hline\hline
Play & Prepne sa do scény so samotným programom a riešičom \\
Play & \makecell{Prepne sa do scény so samotným \\ programom a riešičom} \\
\hline
Tutorial & Zobrazí užívateľovi scénu, kde mu objasní, ako daná aplikácia funguje \\
Tutorial & \makecell{Zobrazí užívateľovi scénu, kde mu objasní,\\ ako daná aplikácia funguje} \\
\hline
Quit & Zatvorí celú aplikáciu \\ [1ex]
\hline
......@@ -44,7 +44,7 @@ Aplikácia je rozdelená na dve scény, a to menu a samotný riešič. Prepínan
Zbytok voľného miesta zaberá rovnako ako v predtým scéne Canvas. V ňom sú vytvorené
všetky tlačidlá a aj 2D zobrazenie modelu. Všetky komponenty, jedná sa o tie na plátne,
sú ukotvené na stabilných miestach. Väčšinou sa jedná o roh aplikácie, pri ktorom sú
najbližšie. Ich pevné pozície museli byť nastavené, nakoľko by užívateľ mohol meniť rozloženie
najbližšie. Ich pevné pozície museli byť nastavené, nakoľko by užívateľ mohol meniť rozlohu
okna aplikácie, a to malo za následok posun, ba až zmiznutie interaktívnych elementov z dosahu
používateľa.
......@@ -53,22 +53,45 @@ Aplikácia je rozdelená na dve scény, a to menu a samotný riešič. Prepínan
Prvotné spracovanie práce kamery bolo statické. To znamenalo, že kamera bola pevne ukotvená
na svojej pozícii, kde snímala hornú a dve bočné strany kocky. Tým pádom, ak užívateľ
chcel nahliadnuť na steny, ktoré v danom momente nevidel, buď bol nútený použiť 2D zobrazenie modelu
alebo otočiť celou kockou. Vtedajšia rotácia kocky znamenala otočiť ju v ľubovoľnom z troch smerov,
alebo otočiť celou kockou. Vtedajšia rotácia kocky znamenala otočiť ju v ľubovoľnom z troch smerov
o 90 stupňov,
čo sme nepokladali za úplne intuitívne. Preto sme sa rozhodli pre lepšiu variantu a iný pohľad
na tento daný problém. Namiesto statickej kamery, ju urobiť dynamickú. Teda inými slovami,
na tento daný problém. Namiesto statickej kamery, sme ju urobili dynamickú. Teda inými slovami,
aby sa nehýbala kocka, ale aby užívateľ mal pocit väčšieho rozhľadu a pohybu okolo modelu.
Implementácia je nasledovná. Okolo celého 3D objektu Rubikovej kocky sa nachádza sféra (angl. Sphere).
Jedná sa o orbit kamery, kde je ukotvená ona sama spolu so svetlom. Čo sa týka Box Collideru je vypnutý,
nakoľko nechceme, aby užívateľ mal hociakú možnosť interagovať s daným orbitom.
Jedná sa o orbit kamery, kde je ukotvená ona sama spolu so svetlom. Daný Box Collideru je pre tento objekt vypnutý,
nakoľko nechceme, aby užívateľ mal hociakú možnosť interagovať s orbitom.
Pre zvýraznenie pocitu nekonečna a vytvorenie hlbšieho 3D efektu modelu, je nastavený na kamere tzv.
Skybox. Ten má dizajn vesmíru a doľadzuje tmavý štýl celej aplikácie.
Čo sa týka interakcie s užívateľom, ovládanie je predvolene nastavené na pravé tlačidlo myši.
Používateľovi stačí držať a ťahať intuitívne v smere, v akom sa chce posunúť. K nahliadnutiu
sú všetky steny kocky. Jedinou limitáciou je, že užívateľ nemôže prekročiť hornú a spodnú hranicu
orbitu. Inak povedané, nie je dovolené, aby užívateľ mohol rotovať okolo modelu po ypsilonovej
súradnici 360 stupňov.
\subsection{Svetlo}
Program obsahuje tri svetelné zdroje. Dva sú statické, pripevnené na presných pozíciách,
kde svietia nastaveným smerom na model v oblasti celého prostredia. Tieto dve komponenty
nie sú vôbec podstatné z hľadiska funkčnosti. Dôvodom, prečo sme sa rozhodli ich zakomponovať
je iba dizajn. Snažili sme sa vytvoriť na stenách kocky ľahký nádych nepravidelnosti povrchu.
Jednoducho sme chceli dosiahnuť reálnosť modelu, aby sa užívateľ stotožnil s prostredím a
nepripadalo mu umelo vymodelované. Preto je na farebných plôškach jemne vidieť akoby
škrabance a textúra.
Tretí zdroj svetla je typovo reflektorový (angl. Spot light). Pripevnený spolu s kamerou
na orbite, ktorý obaľuje 3D model. Smer je zhodný so smerom kamery, teda osvetľuje všetko,
na čo sa užívateľ práve pozerá.
Jedinou zmenou, ktorú sme museli zabezpečiť je výzor oranžovej strany, nakoľko množstvo svetla,
ktoré svietlo na túto stranu ju robilo takmer nerozoznateľnú od žltej steny. Z toho dôvodu má materiál
oranžovej farby zvýšenú metalickosť. To malo za príčinu jeho stmavenie a zníženie možnosti zmetenia užívateľa.
\subsection{Model Kocky}
Model kocky vznikal s myšlienkou jednoduchého vytvárania a pekného dizajnu.
Celý objekt bol vymodelovaný z jednej kocky, ktorá je nakopírovaná 27-krát.
......@@ -90,8 +113,60 @@ Aplikácia je rozdelená na dve scény, a to menu a samotný riešič. Prepínan
S efektivitou posladania tohto hlavolamu to nemá čo dočinenia.
\subsection{Pohyby a rotácie}
Ako sme už spomínali v kapilote (link) vyššie, pohyb okolo celého modelu kocky
zabezpečuje kamera, ktorá rotuje po orbite okolo.
Aby sme zjednodušili ovládanie aplikácie pre užívateľov, sme pridali funkcionalitu
otáčania jednotlivých strán kocky. Steny sa môžu otáčať iba v rotáciách, ktoré
neobsahujú ich stredné časti. Využíva sa nasledovné oficiálne pomenovanie:
\begin{center}
\begin{tabular}{||c|c||}
\hline
Názov rotácie & Smer rotácie \\ [0.5ex]
\hline\hline
F & \makecell{Otočenie prednej strany (predvolene modrá) \\ v smere hodinových ručičiek} \\
\hline
F' & \makecell{Otočenie prednej strany (predvolene modrá) \\ v protismere hodinových ručičiek} \\
\hline
F2 & \makecell{Dvojité otočenie prednej strany (predvolene modrá)} \\
\hline
B & \makecell{Otočenie zadnej strany (predvolene zelená) \\ v smere hodinových ručičiek} \\
\hline
B' & \makecell{Otočenie zadnej strany (predvolene zelená) \\ v protismere hodinových ručičiek} \\
\hline
B2 & \makecell{Dvojité otočenie zadnej strany (predvolene zelená)} \\
\hline
R & \makecell{Otočenie pravej strany (predvolene oranžová) \\ v smere hodinových ručičiek} \\
\hline
R' & \makecell{Otočenie pravej strany (predvolene oranžová) \\ v protismere hodinových ručičiek} \\
\hline
R2 & \makecell{Dvojité otočenie pravej strany (predvolene oranžová)} \\
\hline
L & \makecell{Otočenie ľavej strany (predvolene červená) \\ v smere hodinových ručičiek} \\
\hline
L' & \makecell{Otočenie ľavej strany (predvolene červená) \\ v protismere hodinových ručičiek} \\
\hline
L2 & \makecell{Dvojité otočenie ľavej strany (predvolene červená)} \\
\hline
U & \makecell{Otočenie hornej strany (predvolene biela) \\ v smere hodinových ručičiek} \\
\hline
U' & \makecell{Otočenie hornej strany (predvolene biela) \\ v protismere hodinových ručičiek} \\
\hline
U2 & \makecell{Dvojité otočenie hornej strany (predvolene biela)} \\
\hline
D & \makecell{Otočenie spodnej strany (predvolene žltá) \\ v smere hodinových ručičiek} \\
\hline
D' & \makecell{Otočenie spodnej strany (predvolene žltá) \\ v protismere hodinových ručičiek} \\
\hline
D2 & \makecell{Dvojité otočenie spodnej strany (predvolene žltá)} \\ [1ex]
\hline
\end{tabular}
\end{center}
\subsection{Farbenie presných častí kocky}
Narozdiel od rozloženia kocky pomocou rotácií a ťahov, sme si povedali, že bude
Na rozdiel od rozloženia kocky pomocou rotácií a ťahov, sme si povedali, že bude
dobrý nápad uľahčiť užívateľom namapovanie ich aktuálneho problému, ktorý chcú poskladať.
Predsa nie každý vie, ako dostal určité časti na svoje miesta. Preto naša aplikácia
podporuje zmenu režimu z rotácií na farbenie každej malej časti zvlášť podľa vybranej farby.
......@@ -113,6 +188,14 @@ Aplikácia je rozdelená na dve scény, a to menu a samotný riešič. Prepínan
čo zabezpečuje vyplnenie celej steny kocky, a teda sa nestane, že by laser prešiel na druhú stranu.
Zamýšľali sme sa nad možnosťou, keby sa užívateľ rozhodol prefarbiť kocku natoľko, že by napríklad
znížil počet farebných strán. Príkladom nám môže byť kocka namaľovaná jednou farbou. Takýto hlavolam
je zložiteľný sám o sebe, no už sa nejedná o klasickú Rubikovu kocku o šiestich rôznych stenách.
Práve preto sme sa rozhodli takémuto správaniu užívateľovi zabrániť. Ide o veľmi jednoruché riešenie.
Každá stredová plôška farebnej steny má nastavenú značku (angl. tag) s názvom Centre (prekl. stred).
Tým pádom, keď kamera vyšle laser na pozíciu, kde ukazuje kurzor myši a zasiahne objekt s touto značkou,
bude ignorovať nasledujúcu zmenu materálu, ktorá by za normálnych okolností nastala. Inými slovam používateľovi
nie je dovolené zmeniť farbu stredovej časti strany modelu.
Ak by sa užívateľ chcel vrátiť späť do režimu rotácii pokojne môže.
......
......@@ -80,15 +80,15 @@
</rdf:Description>
<rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/">
<xmp:CreatorTool>LaTeX with hyperref</xmp:CreatorTool>
<xmp:ModifyDate>2021-07-09T21:44:15+02:00</xmp:ModifyDate>
<xmp:CreateDate>2021-07-09T21:44:15+02:00</xmp:CreateDate>
<xmp:MetadataDate>2021-07-09T21:44:15+02:00</xmp:MetadataDate>
<xmp:ModifyDate>2021-07-10T21:11:36+02:00</xmp:ModifyDate>
<xmp:CreateDate>2021-07-10T21:11:36+02:00</xmp:CreateDate>
<xmp:MetadataDate>2021-07-10T21:11:36+02:00</xmp:MetadataDate>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:xmpRights = "http://ns.adobe.com/xap/1.0/rights/">
</rdf:Description>
<rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">
<xmpMM:DocumentID>uuid:E471EDA9-0143-B4EC-2929-27CBFE26697B</xmpMM:DocumentID>
<xmpMM:InstanceID>uuid:20FFEF70-D73B-A84C-7EE7-DA7F960C2A91</xmpMM:InstanceID>
<xmpMM:InstanceID>uuid:8A2B96B6-43A4-54BA-A8ED-D422133AD0CD</xmpMM:InstanceID>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
......
No preview for this file type
No preview for this file type
......@@ -56,6 +56,7 @@
\usepackage{booktabs} % lepší vodorovné linky v tabulkách
\usepackage{paralist} % lepší enumerate a itemize
\usepackage{xcolor} % barevná sazba
\usepackage{makecell}
%%% Údaje o práci
......@@ -100,7 +101,15 @@ David N. za pomoc s texem
% Abstrakt (doporučený rozsah cca 80-200 slov; nejedná se o zadání práce)
\def\Abstrakt{%
Abstrakt.
Táto práca je vytvorená za účeľom zjednodušiť pohľad na skladanie Rubikovej kocky.
Prechádza rôznymi pohľadmi, ako vyriešiť tento hlavolam. Popisuje teóriu, myšlienky
a históriu algoritmov, ako napríklad Kociemba. Približuje výzor prostredia aplikácie
a interaktivitu rôznych elementov. Spracovanie 3D modelu, ktorý je následne prepojený
s 2D mapou kocky. Rovnako sa tu nachádza aj popis ako môže užívateľ interagovať s
prostredím a dôvody, prečo je celá aplikácia implementovaná následovne. Analyzuje efektivitu
z rôznych pohľadov. Opisuje prácu a pohyb kamery so svetlom. Spracováva spätnú väzbu
od testovacích užívateľov.
}
\def\AbstraktEN{%
Abstract.
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment