Heim Backend-Entwicklung XML/RSS-Tutorial Einer der Artikel in der Einführungs-Tutorialreihe zu J2ME Mobile 3D

Einer der Artikel in der Einführungs-Tutorialreihe zu J2ME Mobile 3D

Dec 19, 2016 pm 01:51 PM
mobile

3D-Grafiktechnologie wird zunehmend in verschiedenen Bereichen eingesetzt, dazu gehört natürlich auch der J2ME-Bereich. J2ME stellt uns ein optionales Paket wie JSR184 zur Verfügung, bei dem es sich um eine Reihe von APIs handelt, die 3D-Grafikprogrammierung auf Mobiltelefonen implementieren. Gleichzeitig gibt es mit der Entwicklung der Hardware für mobile Geräte immer mehr Mobiltelefone, die dieses optionale Paket unterstützen, beispielsweise Sony EricCSSons K-Serie, S-Serie usw.
 
Es ist einfach so, dass ich mich vor einiger Zeit kurz mit 3D-Grafik beschäftigt habe, also werde ich hier mit allen teilen, was ich gelernt habe Ich hoffe, dass jeder gemeinsam JSR184 lernen kann.
 
Kommen wir zur Sache. Stellen wir uns zunächst vor, wie wir die Welt im wirklichen Leben beobachten. Wir beobachten durch unsere Augen und leben in einer Welt, die aus einem dreidimensionalen Koordinatensystem besteht. In Mobile3D gibt es auch eine Weltklasse, mit der Sie die Welt nach Ihren Wünschen konstruieren können. Bei 3D-Grafiken gibt es auch eine Kameraklasse Wie Ihre Augen können Sie Position, Winkel und andere Parameter festlegen, um verschiedene Bilder anzuzeigen.
 
 In Mobilgeräten Wie realisiert man die Anzeige von 3D-Bildern in 3D? Zuerst müssen Sie ein 3D-Modell erstellen oder laden, dann eine Reihe von Parametern wie die Umgebung und die Rendering-Methode in der Szene nach Bedarf festlegen, dann eine Kamera generieren und einrichten und das gewünschte Licht anpassen Position und Winkel benötigen. Okay, was brauchst du noch? Drücken Sie den Auslöser, dieser Schritt wird „Rendern“ genannt und alles ist erledigt. Es klingt einfach und ist tatsächlich nicht schwierig.
 
 Lassen Sie uns diese Schritte Schritt für Schritt erklären:
 
 Lassen Sie uns zunächst über die Etablierung des Modells in Mobile sprechen 3D ist dasselbe wie die meisten 3D-Programmier-APIs. Es gibt zwei Möglichkeiten: 1. Echtzeitoperationsgenerierung; Externer Modellimport. Da beim externen Modellimport gleichzeitig die Umgebungsinformationen importiert werden, werde ich Ihnen später eine detaillierte Einführung geben. Hier werde ich mich auf die Einführung des Teils „Echtzeitberechnungsgenerierung“ konzentrieren, der Ihnen das Verständnis von Mobile erleichtert Wie 3D funktioniert. Mobile 3D stellt uns zwei Klassen zur Verfügung, VertexArray und VertexBuffer, die zum Speichern der Scheitelpunktinformationen des 3D-Modells verwendet werden.
 
 Where VertexArray Diese Klasse hat viele Verwendungszwecke und ist flexibler. Es gibt drei häufigste Verwendungszwecke dieser Klasse: 1. zum Speichern von Scheitelpunktkoordinateninformationen; Normale Informationen speichern; 3 Karteninformationen speichern. Jemand fragt sich vielleicht, wie diese Klasse drei verschiedene Dinge bewältigt? Lassen Sie uns diese Klasse analysieren. Zunächst hat der Konstruktor dieser Klasse drei Parameter: 1 Die Anzahl der in diese Instanz aufzunehmenden Elemente; 2 Die Anzahl der in jedes Element aufzunehmenden Elemente; 3 Die Anzahl der von jedem Unterelement belegten Bytes; Dies scheint klar zu machen, warum diese Klasse für drei Dinge verwendet werden kann.
 
Darüber hinaus verfügt diese Klasse über einen häufiger verwendeten Methodensatz (int index, int length, short[] array0). Diese Methode wird zum Speichern von Daten in Instanzobjekten dieser Klasse verwendet Es bezieht sich auf das Element, mit dem begonnen werden soll. Der zweite Parameter bezieht sich auf die Anzahl der festzulegenden Elemente.
 
 Das Folgende ist eine kurze Einführung in die VertexBuffer-Klasse, die tatsächlich die Rahmeninformationen von Polygonen speichert. Ändern Sie die Klasse, um Grafiken zu erstellen, indem Sie Scheitelpunktpositionen, Erkennung und Karteninformationen festlegen. Unter ihnen wird

setPositions(VertexBuffer v, float[]b)

verwendet, um die Scheitelpunktposition festzulegen Die erste wird nicht verwendet. Die letzten beiden werden für Operationen wie den Koordinatenversatz verwendet:
 
 v'=v*s +b
 
Es gibt auch eine
 
 setNormals(vertexBuffer norm)
 
  Methode zum Festlegen von Normalen. Es gibt auch eine sehr wichtige Methode
 
 setTexCoords(int, VertexArray, float, float[])
 
 Mit Ausnahme des ersten Parameters summieren sich die letzten drei Parameter in dieser Methode
 
SetPositions(VertexBuffer v, float s, float[]b)

Es ist dasselbe, der erste Parameter ist die Startelementnummer. Ist das nicht etwas abstrakt? Lassen Sie mich Ihnen ein Beispiel geben, damit Sie es verstehen können.
 
 short x = 20; > 
 short fy = (short) -y; ,z, fx,y,z, x,fy,z, fx,fy,z, //D
 
 fx,y,fz, x,y,fz, fx,fy,fz, x, fy,fz, //C
 
fx,y,z, fx,y,fz, fx ,fy,z, fx,fy,fz, //B

x,y, fz, x,y,z, x,fy,fz, x,fy,z, //F

 x,y,fz, fx,y,fz, x,y,z, fx,y ,z, //A
 
 x,fy,z, fx,fy,z, x, fy,fz, fx,fy,fz}; //E
 
try{vertArray= new VertexArray(vert.length/3,3,2);
vertArray.set(0,vert.length /3,vert);
}catch(Exception e){System.out.PRintln("vert ");}
 
 //Haarlinie
byte[] norm = { 0,0,127, 0,0,127, 0,0,127, 0,0,127,
 
 0,0,-127, 0,0,-127, 0,0,-127, 0 ,0,-127,
 
 -127,0,0, -127,0,0, -127,0,0, -127,0,0,
 
 127,0, 0, 127,0,0, 127,0,0, 127,0,0,
 
 0,127,0, 0,127,0, 0,127,0, 0,127,0,
 
 0, -127,0, 0,-127,0, 0,-127,0, 0,-127,0};
 
try{normArray=new VertexArray(norm.length/3,3,1) ;
NormArray.set(0,norm.length/3,norm);
}catch(Exception e){System.out.println("norm");e.printStackTrace();}

//Geben Sie die Scheitelpunkte an, die den Punkten auf dem Bild entsprechen (Vert- und Tex-Arrays sind eine Eins-zu-Eins-Entsprechung)
short[] tex = { 1, 0, 0, 0, 1, 1, 0 , 1,
 
 1, 0, 0, 0, 1, 1, 0, 1,
 
 1, 0, 0, 0, 1, 1, 0, 1,

1, 0, 0, 0, 1, 1, 0, 1,
 
1, 0, 0, 0, 1, 1, 0, 1,

1, 0 , 0, 0, 1, 1, 0, 1};
 
try{
texArray=new VertexArray(tex.length/2,2,2);
texArray.set(0, tex.length /2,tex);
 }catch(Exception e){System.out.println("tex");}
 
 //Erstelle einen Würfel
 vb=new VertexBuffer( );
vb.setPositions(vertArray,1.0f,null);
vb.setNormals(normArray);
vb.setTexCoords(0,texArray,1.0f,null);

Im obigen Code habe ich alle Scheitelpunkt- und Flächeninformationen, die zum Erstellen eines Würfels erforderlich sind, aber jeder sollte beachten, dass hier kein entsprechendes Modell generiert wird. Der Grund dafür ist, dass wir keine weiteren Informationen zum Generieren des Modells eingerichtet haben. Schauen wir uns die Klasse TriangleStripArray an, die zur Bildung der Oberfläche benötigt wird ist durch mehrere Flächen, dreieckige Flächen sind eine häufiger verwendete Methode. Auf den konkreten Inhalt werde ich hier nicht näher eingehen.
 
Als nächstes müssen wir auch einige Umgebungs- und Materialinformationen festlegen. Die hier verwendeten Klassen sind Aussehen, Texture2D und Material. Schauen wir uns zunächst ein Beispiel an:

aussehen=neues Aussehen();

//Eine Textur erstellen
.FUNC_DECAL);
Texture.setWrapping(Texture2D.WRAP_REPEAT,Texture2D .WRAP_REPEAT);
texture.setFiltering(Texture2D.FILTER_NEAREST,Texture2D.FILTER_NEAREST);

material=new Material();
material.setColor(Material.DIFFUSE, 0xFFFFFFFF);
material.setColor(Material.SPECULAR, 0xFFFFFFFF);
material.setShininess(100.0f); texture);
appearnce.setMaterial(material);

mesh=new Mesh(vb,tsa, Erscheinung);
mesh.setAppearance(0,appearnce);

I Persönlich habe ich das Gefühl, dass die Appearance-Klasse der VertexBuffer-Klasse etwas ähnelt und auch über eine Vielzahl von Attributen verfügt Hervorzuheben ist hier, dass die Einstellungen der Appearance-Klasse weit über die oben angegebenen hinausgehen und es noch viel mehr Einstellungen gibt (z. B. FOG, also Nebeleinstellungen). Texture2D ist eine Texturklasse. Verwenden Sie sie, um Texturinformationen festzulegen, z. B. ob die Textur gekachelt ist. Der Name Material bedeutet das Material. Hier können Sie die „Reflexionsfähigkeit“, „Farbe“ und andere Informationen einstellen. Darüber hinaus werde ich hier auch eine Methode zum Festlegen von Rendering-Parametern vorstellen
 
 //Poly-Modus-Einstellungen festlegen
PolygonMode polygonMode=new PolygonMode();
polygonMode.setShading(PolygonMode.SHADE_SMOOTH);
PolygonMode.setCulling(PolygonMode.CULL_NONE);

//Erscheinungsbild generieren
appearnce=new Appearance();
appearnce.setPolygonMode(polygonMode); Der Code scheint einfacher als der obige zu sein, richtig ? Tatsächlich hat PolygonMode bereits viel Arbeit für uns erledigt. Die Einstellung ist der Verwendung von Poly in 3D MAX sehr ähnlich.
 
 Der Code gibt gerade auch eine Mesh-Klasse an, die das endgültige Modell ist, das wir für diese Art von Material wollen. Nachdem wir das Modell erstellt haben, müssen wir die Kamera erstellen. In Camera werde ich nur kurz zwei Methoden vorstellen: setParallel(float, float, float, float) und setPerspective(float, float, float, schweben). Schauen wir uns zunächst setParallel(float, float, float, float) Mit dieser Methode wird die Ansichtsmethode der Kamera auf eine flache Ansicht eingestellt. Der erste Parameter besteht darin, die Höhe des Blickwinkels festzulegen. Der Fokus liegt auf der Höhe und nicht auf dem Winkel, da es sich um eine flache Ansicht handelt Das Breiten-Höhen-Verhältnis der Kamera beträgt beispielsweise 4:3, der dritte und vierte Parameter sind der nächste bzw. der weiteste Wiedergabebereich. Das gleiche setPerspective stellt die Kamera auf eine perspektivische Ansicht ein, die dem Beobachtungswinkel in unserem täglichen Leben näher kommt. Die letzten drei Parameter dieser Methode sind die gleichen wie die letzten drei Parameter von setParallel, und der erste Parameter ist Angle, das sollten Sie Ignorieren Sie dieses Winkelproblem hier nicht. Dieser Winkel ist ein wichtiger Parameter für die Berechnung der perspektivischen Projektion.
 
Es scheint, dass alles vorbereitet ist, aber das ist nicht der Fall. Bisher haben wir nur alle Materialien vorbereitet, die wir benötigen. Werfen wir einen Blick auf Mobile Der Governance-Mechanismus von 3D. Jeder, der mit 3D-Zeichnung vertraut ist, weiß, dass die meisten 3D-Programme 3D sind Die API verwaltet Materialien über eine Baumstruktur. Dies hat den Vorteil, dass jedes Modell, jede Modellgruppe, jede Kamera und andere Elemente ihre eigene Rotationsachse und andere Attribute als Knoten festlegen und den von ihnen festgelegten Animationsinformationen folgen können . Im Handy 3D legt für uns fest, dass der Wurzelknoten der Baumstruktur ein Instanzobjekt der Weltklasse sein muss. Die Kamera und das Licht sind relativ speziell und müssen nicht in diesem Baum platziert werden, sondern werden durch Objekte der Graphics3D festgelegt Klasse (aber sie müssen nicht sein

Das Obige ist einer der Artikel in der Einführungs-Tutorialreihe zu J2ME Mobile 3D. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn). )


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ist die Konversionsgeschwindigkeit beim Umwandeln von XML in PDF auf Mobiltelefon schnell? Ist die Konversionsgeschwindigkeit beim Umwandeln von XML in PDF auf Mobiltelefon schnell? Apr 02, 2025 pm 10:09 PM

Die Geschwindigkeit der mobilen XML zu PDF hängt von den folgenden Faktoren ab: der Komplexität der XML -Struktur. Konvertierungsmethode für mobile Hardware-Konfiguration (Bibliothek, Algorithmus) -Codierungsoptimierungsmethoden (effiziente Bibliotheken, Optimierung von Algorithmen, Cache-Daten und Nutzung von Multi-Threading). Insgesamt gibt es keine absolute Antwort und es muss gemäß der spezifischen Situation optimiert werden.

Wie konvertiere ich XML -Dateien in PDF auf Ihrem Telefon? Wie konvertiere ich XML -Dateien in PDF auf Ihrem Telefon? Apr 02, 2025 pm 10:12 PM

Mit einer einzigen Anwendung ist es unmöglich, XML -zu -PDF -Konvertierung direkt auf Ihrem Telefon zu vervollständigen. Es ist erforderlich, Cloud -Dienste zu verwenden, die in zwei Schritten erreicht werden können: 1. XML in PDF in der Cloud, 2. Zugriff auf die konvertierte PDF -Datei auf dem Mobiltelefon konvertieren oder herunterladen.

Wie konvertieren Sie XML in Ihr Telefon in PDF? Wie konvertieren Sie XML in Ihr Telefon in PDF? Apr 02, 2025 pm 10:18 PM

Es ist nicht einfach, XML direkt auf Ihr Telefon in PDF umzuwandeln, kann jedoch mit Hilfe von Cloud -Diensten erreicht werden. Es wird empfohlen, eine leichte mobile App zu verwenden, um XML -Dateien hochzuladen und generierte PDFs zu empfangen und sie mit Cloud -APIs zu konvertieren. Cloud -APIs verwenden serverlose Computerdienste, und die Auswahl der richtigen Plattform ist entscheidend. Bei der Behandlung von XML -Parsen und PDF -Generation müssen Komplexität, Fehlerbehebung, Sicherheit und Optimierungsstrategien berücksichtigt werden. Der gesamte Prozess erfordert, dass die Front-End-App und die Back-End-API zusammenarbeiten, und es erfordert ein gewisses Verständnis einer Vielzahl von Technologien.

Gibt es eine mobile App, die XML in PDF umwandeln kann? Gibt es eine mobile App, die XML in PDF umwandeln kann? Apr 02, 2025 pm 08:54 PM

Eine Anwendung, die XML direkt in PDF konvertiert, kann nicht gefunden werden, da es sich um zwei grundlegend unterschiedliche Formate handelt. XML wird zum Speichern von Daten verwendet, während PDF zur Anzeige von Dokumenten verwendet wird. Um die Transformation abzuschließen, können Sie Programmiersprachen und Bibliotheken wie Python und ReportLab verwenden, um XML -Daten zu analysieren und PDF -Dokumente zu generieren.

Empfohlenes XML -Formatierungswerkzeug Empfohlenes XML -Formatierungswerkzeug Apr 02, 2025 pm 09:03 PM

XML -Formatierungs -Tools können Code nach Regeln eingeben, um die Lesbarkeit und das Verständnis zu verbessern. Achten Sie bei der Auswahl eines Tools auf die Anpassungsfunktionen, den Umgang mit besonderen Umständen, die Leistung und die Benutzerfreundlichkeit. Zu den häufig verwendeten Werkzeugtypen gehören Online-Tools, IDE-Plug-Ins und Befehlszeilen-Tools.

So öffnen Sie das XML -Format So öffnen Sie das XML -Format Apr 02, 2025 pm 09:00 PM

Verwenden Sie die meisten Texteditoren, um XML -Dateien zu öffnen. Wenn Sie eine intuitivere Baumanzeige benötigen, können Sie einen XML -Editor verwenden, z. B. Sauerstoff XML -Editor oder XMLSPY. Wenn Sie XML -Daten in einem Programm verarbeiten, müssen Sie eine Programmiersprache (wie Python) und XML -Bibliotheken (z. B. XML.etree.elementtree) verwenden, um zu analysieren.

So öffnen Sie Web.xml So öffnen Sie Web.xml Apr 03, 2025 am 06:51 AM

Um eine Web.xml -Datei zu öffnen, können Sie die folgenden Methoden verwenden: Verwenden Sie einen Texteditor (z.

Wie konvertieren Sie XML mit hoher Qualität auf Ihr Telefon in PDF? Wie konvertieren Sie XML mit hoher Qualität auf Ihr Telefon in PDF? Apr 02, 2025 pm 09:48 PM

Konvertieren Sie XML in PDF mit hoher Qualität auf Ihrem Mobiltelefon müssen: XML in der Cloud analysieren und PDFs mithilfe einer serverlosen Computerplattform generieren. Wählen Sie eine effiziente Bibliothek für XML -Parser- und PDF -Generation. Fehler korrekt behandeln. Nutzen Sie die Cloud -Computing -Leistung voll, um schwere Aufgaben auf Ihrem Telefon zu vermeiden. Passen Sie die Komplexität gemäß den Anforderungen an, einschließlich der Verarbeitung komplexer XML-Strukturen, der Erzeugung von mehrseitigen PDFs und dem Hinzufügen von Bildern. Drucken Sie Protokollinformationen zum Debuggen. Optimieren Sie die Leistung, wählen Sie effiziente Parser- und PDF -Bibliotheken aus und können asynchrone Programmier- oder Vorverarbeitungs -XML -Daten verwenden. Gewährleisten Sie eine gute Codequalität und -wartbarkeit.

See all articles