|
You last visited: Today at 07:37
Advertisement
3d game schreiben.( logik- frage)
Discussion on 3d game schreiben.( logik- frage) within the General Coding forum part of the Coders Den category.
03/19/2011, 11:04
|
#16
|
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
|
cgtextures.com
mit dem gratisaccount bekommst du seamless texturen in kleinem format und normale im großen. Kannste dir einfach in photoshop oder gimp selbst seamless machen.
3D Programm Blender, 3DsMax, Maya etc.
Ja, die Arbeit für ein ganzes Spiel ist halt ziemlich viel. Man muss in verschiedenen Gebieten gut sein. Deswegen sucht man sich meistens Leute die das können. 3D Modeller, Texture artists, Animatoren, Sound Artists, Concept Artists und Programmierer
Du kannst auch erstmal Vorgefertigte Modelle nehmen. Gibt es überall im Internet um erstmal ein kleines sinnloses Spiel zu machen. Damit du siehst wie das läuft mit Ogre3d usw.
Wenn du dann irgendwann vor hast ein richtiges zu machen, Technical Description und Game Design Description schreiben, und dir paar Leute suchen.
Bei Blenderartists.org gibts ein Forum für Game Projekte. Die Spiele sind da Hauptsächlich mit der Blender Game Engine gemacht, aber hin und wieder sind da auch welche die auf einer anderen Engine basieren, UDK, Ogre3d usw. da kannste dann auch nach Leuten suchen.
|
|
|
03/19/2011, 11:32
|
#17
|
elite*gold: 0
Join Date: Jun 2008
Posts: 180
Received Thanks: 39
|
Zum Thema Tutorial für Ogre3d
Das hier :  soll angeblich Beste sein. Was hältst du davon ?
|
|
|
03/19/2011, 11:41
|
#18
|
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
|
Wird wohl das einzige deutsche Tutorial sein, was du dazu findest. Die PDF die ich habe ist auch auf Englisch. 99% der Sachen sind auf Englisch. Aber auch zu Blender werden die meisten sachen auf englisch sein.
|
|
|
03/19/2011, 11:49
|
#19
|
elite*gold: 0
Join Date: Jun 2008
Posts: 180
Received Thanks: 39
|
Englisch ist kein problem.. auf jeden fall kein großes.
läds du die pdf bitte hoch?
|
|
|
03/19/2011, 12:33
|
#20
|
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
|
hast pn.
|
|
|
03/15/2012, 00:52
|
#21
|
elite*gold: 0
Join Date: Jun 2008
Posts: 180
Received Thanks: 39
|
Ich hab mich nochmal dahintergesetzt. Ich möchte gerne die 3D Welt schreiben ohne ein weiteres programm oder lib zu nutzen. Mir ist es wichtig das ich verstehe wie die Funktioniert....
So. Mein Aktuelles Problem: Wie berechne ich die länge der Tiefen eines Würfels mit a=10 ?
Die Winkel der Tiefen zum Fluchtpunkt konnte ich alle mit Sinus Cosinus und Tangens errechnen... aber mir will nichts einfallen wie ich die Länge der Tiefen errechnen soll.... Ich werd' demnächst mal ein kleines Beispiel scheiben...
|
|
|
03/15/2012, 09:09
|
#22
|
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
|
Quote:
|
Wie berechne ich die länge der Tiefen eines Würfels mit a=10 ?
|
Hm warum machst du dir das so schwer? Machs doch mit einer Vektormatrix. Du hast 12 Seiten also brauchst du max. 12 Spalten. Zeilen werden, abhängig von der Dimension, wohl drei sein. Einen Vektor beschreibst du dann mit den drei Einheitsvektoren deines Koordinatensystems:
v=a*ex+b*ey+c*ez
Der Betrag (die Länge) eines Vektors errechnet sich folgendermaßen: |v| = sqrt(a²+b²+c²).
|
|
|
03/15/2012, 23:13
|
#23
|
elite*gold: 0
Join Date: Jun 2008
Posts: 180
Received Thanks: 39
|
mist, kann ich nicht :O noch nich..
|
|
|
03/15/2012, 23:25
|
#24
|
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
|
Ich habe aus Jux und Tollerei (und weil ich für meine Klausur üben muss) mal schnell was in Java geschrieben. Mithilfe von Vektoren werden die Strecken zu einem Fluchtpunkt gezeichnet. Wie man jetzt die Länge der Schrägen bestimmt ist mir gerade auch noch ein Rätsel. Das hängt ja immer von der Lage des Fluchtpunkts ab. Spontan würden mir da vllt. Strahlensätze einfallen, dass man die verwenden könnte, aber sonst fällt mir auch nichts ein. Habe mich ehrlich auch nie näher damit beschäftigt.
Anmerkungen zum Code: Ich verwende da 3D Vektoren, obwohl das vollkommen sinnlos ist, weil man eh nur 2D darstellen kann, also man eine Richtung auf die andern beiden Richtungen umrechnen muss. Aber wer weiß, vllt wird es iwann mal ganz hilfreich sein, wenn du gleich mit 3D Vektoren arbeitest.
Dass Fehler drin sind, ist natürlich auch nicht ausgeschlossen:
Code:
Code:
import java.awt.Color;
import java.awt.Graphics;
public class Wuerfel {
private static class D3Vector {
private double[] r;
private final int X = 0;
private final int Y = 1;
private final int Z = 2;
public D3Vector(double x, double y, double z) {
this.r = new double[3];
this.r[this.X] = x;
this.r[this.Y] = y;
this.r[this.Z] = z;
}
public double getLength() {
return (Math
.sqrt(Math.pow(this.r[this.X], 2)
+ Math.pow(this.r[this.Y], 2)
+ Math.pow(this.r[this.Z], 2)));
}
public double getX() {
return this.r[this.X];
}
public double getY() {
return this.r[this.Y];
}
public double getZ() {
return this.r[this.Z];
}
public static int[] D3ToD2(int x, int y, int z) {
int[] ret = new int[2];
ret[0] = y;
ret[1] = z;
return ret;
}
}
private int a;
private int[] pos;
private int[] vanishingPoint;
private D3Vector[] vectors;
public Wuerfel(int a, int[] pos, int[] vanishingPoint) {
this.a = a;
this.pos = pos;
this.vanishingPoint = vanishingPoint;
this.vectors = new D3Vector[6];
this.createVectors();
}
private void createVectors() {
// Waagerecht und horizontal sind trivial
this.vectors[0] = new D3Vector(0, this.a, 0);
this.vectors[1] = new D3Vector(0, 0, this.a);
// Schräg
int vX = this.vanishingPoint[0] - this.pos[0];
int vY = this.vanishingPoint[1] - this.pos[1];
int vZ = this.pos[2] - this.vanishingPoint[2];
this.vectors[2] = new D3Vector(vX, vY, vZ);
vX = this.vanishingPoint[0] - this.pos[0];
vY = this.vanishingPoint[1] - (this.pos[1] + this.a);
vZ = this.pos[2] - this.vanishingPoint[2];
this.vectors[3] = new D3Vector(vX, vY, vZ);
vX = this.vanishingPoint[0] - this.pos[0];
vY = this.vanishingPoint[1] - this.pos[1];
vZ = (this.pos[2] - this.a) - this.vanishingPoint[2];
this.vectors[4] = new D3Vector(vX, vY, vZ);
vX = this.vanishingPoint[0] - this.pos[0];
vY = this.vanishingPoint[1] - (this.pos[1] + this.a);
vZ = (this.pos[2] - this.a) - this.vanishingPoint[2];
this.vectors[5] = new D3Vector(vX, vY, vZ);
}
private void drawVector(Graphics g, D3Vector vector, D3Vector pos) {
int[] start = D3Vector.D3ToD2((int) Math.round(pos.getX()),
(int) Math.round(pos.getY()), (int) Math.round(pos.getZ()));
int[] end = D3Vector.D3ToD2((int) Math.round(vector.getX()),
(int) Math.round(vector.getY()),
(int) Math.round(vector.getZ()));
g.drawLine(start[0], start[1], start[0] + end[0], start[1] - end[1]);
}
public void drawCube(Graphics g) {
int[] vpPos = D3Vector.D3ToD2(this.vanishingPoint[0],
this.vanishingPoint[1], this.vanishingPoint[2]);
g.setColor(Color.black);
g.fillOval(vpPos[0] - 6, vpPos[1] - 6, 10, 10);
g.drawString("VP", vpPos[0] + 10, vpPos[1] - 10);
this.drawVector(g, this.vectors[0], new D3Vector(this.pos[0],
this.pos[1], this.pos[2]));
this.drawVector(g, this.vectors[0], new D3Vector(this.pos[0],
this.pos[1], this.pos[2] - this.a));
this.drawVector(g, this.vectors[1], new D3Vector(this.pos[0],
this.pos[1], this.pos[2]));
this.drawVector(g, this.vectors[1], new D3Vector(this.pos[0],
this.pos[1] + this.a, this.pos[2]));
this.drawVector(g, this.vectors[2], new D3Vector(this.pos[0],
this.pos[1], this.pos[2]));
this.drawVector(g, this.vectors[3], new D3Vector(this.pos[0],
this.pos[1] + this.a, this.pos[2]));
this.drawVector(g, this.vectors[4], new D3Vector(this.pos[0],
this.pos[1], this.pos[2] - this.a));
this.drawVector(g, this.vectors[5], new D3Vector(this.pos[0],
this.pos[1] + this.a, this.pos[2] - this.a));
}
public void setVanishingPoint(int[] vanishingPoint) {
this.vanishingPoint = vanishingPoint;
this.createVectors();
}
}
Code:
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JApplet;
public class DreiD extends JApplet implements MouseListener {
private Wuerfel wuerfel;
@Override
public void init() {
int[] pos = { 0, 250, 250 };
int[] vanishingPoint = { 20, 500, 100 };
this.wuerfel = new Wuerfel(80, pos, vanishingPoint);
this.setSize(600, 400);
this.addMouseListener(this);
}
@Override
public void paint(Graphics g) {
super.paint(g);
this.wuerfel.drawCube(g);
}
@Override
public void mouseClicked(MouseEvent e) {
int[] vanishingPoint = { 0, e.getX(), e.getY() };
this.wuerfel.setVanishingPoint(vanishingPoint);
this.repaint();
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
}
}
|
|
|
03/16/2012, 10:30
|
#25
|
elite*gold: 0
Join Date: Jun 2008
Posts: 180
Received Thanks: 39
|
Ich bin momentan so weit:
Vektoren sind auf jeden fall die bessere Alternative oder ?
|
|
|
03/16/2012, 11:22
|
#26
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
|
Quote:
Originally Posted by xNopex
...
|
Böses xnopex.
|
|
|
03/16/2012, 12:44
|
#27
|
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
|
@MoepMeep: Ich wusste, dass du mir wieder damit kommst -.- Habs ausgebessert.
@Klickboy: Ja unbedingt mit Vektoren arbeiten. Du wirst einmal sehr die Vorzüge von Vektoren und Matrizen zu schätzen wissen. Lineare Gleichungssysteme lassen sich mit Matrizen zum Beispiel wesentlich einfacher lösen und auch relativ einfach effizient programmieren. Du wirst das sicher noch brauchen können. Die ganze Winkelberechnung ist nicht wirklich das Wahre. V.a. wenn man bedenkt, dass die Funktionen für sin, tan, cos, arctan, etc. mitunter sehr ungenaue Ergebnisse liefern könnten.
EDIT: Ich weiß nicht wies bei dir mit der Schulbildung steht, aber Vektorrechnung kommt normalerweise in der Oberstufe dran. Sprich 10,11,12te Klasse Gymnasium. Was du da lernst ist aber eher weniger hilfreich. Ihr macht da diverses Zeugs, was ganz lustig ist und einem einen groben Überblick über Vektoren gibt, aber was man mit Vektoren wirklich alles anstellen kann, das lernst du erst in einer Mathematik-Vorlesung in der Uni. D.h. evtl. musst du dir das Wissen selber aneignen oder du benutzt doch fertige Libs
|
|
|
03/16/2012, 13:29
|
#28
|
elite*gold: 0
Join Date: Jun 2008
Posts: 180
Received Thanks: 39
|
Ich besuche die 11. Klasse...
Java steht grad auf den Lehrplan^^ netter zufall.. Mit Vektoren ab ich noch nix am hut.. ich guck mal was ich mir aneignen kann, Danke soweit
|
|
|
05/02/2012, 19:10
|
#29
|
elite*gold: 0
Join Date: Jun 2008
Posts: 180
Received Thanks: 39
|
Ich möchte mich mitlerweile ernsthaft mit dem Thema beschäftigen und bin dafür auch bereit C++ zu lernen. Welche Engine wäre Optimal für C++ ?
Könnte mir bitte Jemand ein,zwei Bücher empfehlen, mit denen ich mir das nötige Know How aneignen kann? Es gibt so viele deutsche C++ Bücher, und ich will nicht irgendeins kaufen. Dazu dann halt noch ein Buch damit ich die Engine Verstehen lerne^^.
|
|
|
05/02/2012, 19:42
|
#30
|
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
|
Ich persönlich habe versucht die Sprache mit "Einstieg in C++" von Arnold Willemer zu lernen. Hier findest du eine online Version, anhand der du mal schauen kannst, ob das Buch dir was taugt:
Die meisten anderen werden dir wohl C++ von A bis Z oder dergleichen empfehlen. Wovon ich dir als Anfänger abraten würde ist das Buch von Bjarne Stroustrup, falls das hier einer vor hat zu empfehlen.
Ich habe mich grob mit der Irrlicht Engine mal auseinandergesetzt. Das ist eine reine Grafik Engine, kannst du dir ja mal ansehen:
|
|
|
 |
|
Similar Threads
|
[frage]Bot zum ticket schreiben
03/23/2011 - S4 League - 24 Replies
Ich wollte nur fragen ob es möglich wäre ein ein Bot zu schreiben, wo
man einfach den namen des hackers einschreiben muss und der automatisch ein ticket mit einem vorher geschriebenen text
z.B " lol iks deh, der hat sp und hp hack unso"
erstellt und diese abschickt?
p.s: wenn gleich oder morgen solche bot's hier erscheinen aufpassen, da sind sehr oft keylogger drin
mfg
blend
|
[FRAGE] Farbig schreiben?
09/21/2010 - Dragonica - 3 Replies
Hallo,
ich habe vor kurzem wieder angefangen Dragonica zu spielen und wusste früher wie man z.B in grün schreibt. Ich meine wenn man das in den Chat schreibt.
Ich habe das früher bei Google gefunden aber es scheint als hätte sich dieses Thema um die Farben in Luft aufgelöst.
Man musste davor irgendwie #red oder sowas schreiben oder?
Kann mir da jemand helfen,bitte? :D
|
Shiina's bescheuerte Logik
05/18/2008 - Quotes - 29 Replies
Irgendwann heute kam mal das zustande:
Na, versteht ihr was sie meint? Also ich jedenfalls nicht... xD
|
All times are GMT +1. The time now is 07:37.
|
|