• Wir werden in den nächsten Tagen verschiedene Wartungsoperationen und Optimierungen am Server durchführen. Es wird zu mehreren Ausfällen kommen, die teilweise auch mehrere Stunden umfassen können.

suche eine Programmiersprache

Osbes

Staff member
Administrator
Ex-Admin
UF Supporter
Joined
Oct 24, 2003
Messages
11,481
Points
325
Ich suche eine Programmiersprache die in der Lage ist ohne umständlich zu werden 3D Objekte darzustellen und ihre bewegung im Raum berechnen zu können.

diese Objekte sollen außerdem noch unterschiedlich aufeinander reagieren ( zb durch abstoßung etc )

es wird sich dabei übrigens um Kugeln handeln, jedoch sollen diese kugeln auch fähig sein sich nicht nur abzustoßen sondern auch zu verbinden.

( eine änderung der perspektive ist natürlich auch wichtig )

nunja, dann macht mal Vorschläge :)


Mit umständlich meine ich übrigens, das ich eine sprache suche, die den umgang mit 3d objekten von hause aus versteht und keine die nur 2d objekte kennt, denn dann müsste ich ja noch alles berechnen lassen, was besonders bei der änderung der perspektive ein problem wird :/
 
ahhh ...

immer noch keine antwort ....

nunja, dann erweitere ich mal meine frage ( und poste hier nochmal, damit es auch noch einer liest ^^ )

wäre es denn ein zu großer aufwand dies mit einer anderen programmiersprache zu schreiben, was meint ihr ?? ( den umgang mit 3d objekten ).
und welche programmiersprache könnte man mir dort empfehlen ??

( wobei ich natürlich das andere bevorzuge :/ vll könnte mir ja mapple nützlich sein, kennt sich da einer aus ?? )
 
warum in die ferne schweifen...

http://de.wikipedia.org/wiki/OpenGL

Unterstützte Programmiersprachen

Die typische OpenGL-Implementierung liegt in Form einer dynamischen Programmbibliothek und einer C-Headerdatei vor. Somit ist die Nutzung aus C und C++ heraus problemlos möglich. Es existieren aufgrund der großen Beliebtheit von OpenGL jedoch Anbindungen an eine Reihe weiterer Programmiersprachen.

* Java:
o Jogl (standardisierte OpenGL-Bindung nach JSR-231)
o Lightweight Java Game Library (LWJGL)
o Java 3D
o YAJOGLB (Yet Another Java OpenGL Binding)
o Tree
o JavaOpenGL
* Fortran 90: f90gl
* Perl:
o Perl OpenGL Bindings
o OpenGL Perl Module
* Pike: Nativ
* Python:
o PyOpenGL
o PyGlut
* Ada: Ada OpenGL 1.1 bindings
* C-Sharp: Tao
* Delphi: DGLOpenGL.pas (DelphiGL)
* Haskell: HOpenGL
* BlitzMax
* BasicGL
 
das klingt doch schon mal sehr gut :)

nur um nochmal sicher zu gehen, damit kann ich zb auch sagen, wenn kugel a sich m nah an kugel b bewegt muss sie aufgrund einer formel, welche von m abhänig ist, sich in einer bestimmten geschwingidkeit bewegen ??

desweiteren ist mir auch wichtig, ob man damit die bewegung in dem raum realisieren kann, sprich ich möchte die reaktion der kugeln aufeinader von oben, links, rechts, aus 10cm, 30cm .... usw sehen.

sind alle programmiersprachen gleich geeignet für diese aufgabe, oder welche ist mir dort zu empfehlen ( ich würde ja gerne delphi bevorzugen, da ich mich dort schon einigermaßen auskenne, hätte aber auch kein problem damit eine gänzlich andere sprache zu nehmen, da ich bezweifle in wiefern delphi für solche aufgaben geeignet ist :/ )
 
http://www.delphigl.de/opengl.html

hmm was du meinst müsste im tutorial 8 beschrieben sein... also der umgang mit beliebigen körpern...

da steht was von assembler... wäre bitter, wenn du das in assembler machen müsstest...:free

ist ja schon scheiße eine soundkarte per assembler zu programmieren, aber ne GPU... oha...:ugly

naja mfg... hoffe du wirst fündig
 
bewegung und physik wirst du mit opengl aber IMMER selber schreiben müssen.
müsstest dann vielleicht eine fertige engine nehmen (z.b. irrlicht engine)


wenn du n bisschen rumscripten willst, könnte irrLua das richtige für dich sein.
 
Last edited:
Also einfach geht das schon mal gar nicht ;)
Die Frage ist ja auch noch wie du das benutzen willst.
( als exe, auf ner website oder was auch immer )
Wenn du das als Windoof-exe haben willst kannst du auch das
DirectX-SDK benutzen, brauchste nur noch nen Compiler ;)
Die Physik musst du in jedem falle selber proggen, da kommste nicht
drum rum ( zumindestens kenn ich nix )
Ich hatte mal nen bissel mit DX rumprobiert, ziemlich kompliziert alles :p
Im internet findest du aber haufenweise Infos wie das geht ;)
( und vor allem prima Beispiele )
Und falls du Probleme mit c(++)(#) haben solltest, einfach fragen :)
 
Last edited:
Danke erstmal für die antworten :)

also ich will lediglich versuchen um den 3d teil drum rum zu kommen, da es sicherlich ein riesiges stück arbeit wäre einen kamera verlauf und an sich 3d zu verwirklichen. ( sofern es aber nicht anders geht würde ich ich auch darum bemühen, mein programm muss nicht von heute auf morgen fertig werden, da nur ich daran intresse habe kann es ruhig auch mehrere monate dauern bis auch erst die erste version fertig ist ;) )

die physik möchte ich auch gerne selbst festlegen, ich wollte halt wissen ob dies mit den vorschlägen auch möglich ist zu bearbeiten.


für die nutzung steht nur fest, das ich in der lage sein muss es zu starten ^^ ( hab da also keine wünsche ) und das möglichst viel für berechnungen der physik übrigbleibt ( ich schätze nämlich es könnte zu einer großen anzahl von berechnung kommen, da ich ja nicht nur 2 kugeln am ende haben werde, sondern wohl um die tausend stück :> da wird es viele einflüsse geben, welche alle sehr genau berechnet sein sollten :o )

da ich hier schon längst ein großes neuland betreten habe werde ich wohl noch eine ganze zeit brauchen bis ich mich etwas eingelebt habe und wohl öfters einen guten rat einholen ;)


nungut, also bislang bin ich auch noch etwas verwirrt, könntet ihr mir mal kurz erklären wie das ganze dann ablaufen würde ?
also bislang scheint es mir so, das ich eine "sprache"??? für die erstellung von 3d objekten benötigen werde und eine andere die diese dann "steuert". sehe ich das so richtig ??
bzw ich werde es in der sprache schreiben die alles steuern soll und diese wird auf befehle der anderen zurückgreifen um die 3d objekte zu steuern ??


des weiteren habe ich nun sehr viele empfehlungen von euch erhalten, nur was ist am besten für meine bedürfnisse geeignet :/ ich hoffe ihr wisst nun was ich will und könnt mir da eine gute empfehlung geben :)
 
Meine Kumpels in der Klassse sind im Informatik kurs die kann ich ma fragen was die dir anbieten würden ;) dann kann ich dir morgen das Ergebnis sagen ;)
 
Osbes said:
nungut, also bislang bin ich auch noch etwas verwirrt, könntet ihr mir mal kurz erklären wie das ganze dann ablaufen würde ?
also bislang scheint es mir so, das ich eine "sprache"??? für die erstellung von 3d objekten benötigen werde und eine andere die diese dann "steuert". sehe ich das so richtig ??
bzw ich werde es in der sprache schreiben die alles steuern soll und diese wird auf befehle der anderen zurückgreifen um die 3d objekte zu steuern ??
Du brauchst ein Programm mit dem du 3D-Objekte erstellen kannst,
also sone Art Bildbearbeitungsprogramm, zumindestens dann wenn es
ein etwas aufwendigeres 3D-Modell werden soll.
Kugeln, Dreiecke und sowas einfaches bekommt man auch ohne zusätzliches
Programm gebacken.
Dazu ein kleines simples:D Beispiel in C# ( nur ein Auszug ):
Code:
		public void InitializeGraphics()
		{
			// Set our presentation parameters
			PresentParameters presentParams = new PresentParameters();

			presentParams.Windowed = true;
			presentParams.SwapEffect = SwapEffect.Discard;

			// Create our device
			device = new Device(0, DeviceType.Hardware, this,
				CreateFlags.HardwareVertexProcessing, presentParams);

			CustomVertex.PositionNormalColored[] verts = new CustomVertex.PositionNormalColored[3];
			verts[0].Position = new Vector3(0.0f, 1.0f, 1.0f);
			verts[0].Normal = new Vector3(0.0f, 0.0f, -1.0f);
			verts[0].Color = System.Drawing.Color.DarkRed.ToArgb();
			verts[1].Position = new Vector3(-1.0f, -1.0f, 1.0f);
			verts[1].Normal = new Vector3(0.0f, 0.0f, -1.0f);
			verts[1].Color = System.Drawing.Color.Blue.ToArgb();
			verts[2].Position = new Vector3(1.0f, -1.0f, 1.0f);
			verts[2].Normal = new Vector3(0.0f, 0.0f, -1.0f);
			verts[2].Color = System.Drawing.Color.Cyan.ToArgb();
			vb = new VertexBuffer(typeof(CustomVertex.PositionNormalColored), 3, device, Usage.Dynamic |
				Usage.WriteOnly, CustomVertex.PositionColored.Format, Pool.Default);
			vb.SetData(verts, 0, LockFlags.None);
		}

		private void SetupCamera()
		{
			device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4,
				this.Width / this.Height, 1.0f, 100.0f);
			device.Transform.View = Matrix.LookAtLH(new Vector3(0,0, 5.0f), new Vector3(),
				new Vector3(0,1,0));

			device.Transform.World = Matrix.RotationAxis(new Vector3(angle / ((float)Math.PI * 2.0f),
				angle / ((float)Math.PI * 4.0f), angle / ((float)Math.PI * 6.0f)),
				angle / (float)Math.PI);
			angle += 0.1f;
			device.RenderState.CullMode = Cull.None;

		}

		protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
		{
			device.Clear(ClearFlags.Target, System.Drawing.Color.CornflowerBlue, 1.0f, 0);
			SetupCamera();
			// Triangle Data

			device.Lights[0].Type = LightType.Point;
			device.Lights[0].Position = new Vector3();
			device.Lights[0].Diffuse = System.Drawing.Color.White;
			device.Lights[0].Attenuation0 = 0.2f;
			device.Lights[0].Range = 10000.0f;
//			device.Lights[0].Commit();
			device.Lights[0].Enabled = true;



			//Paint Triangle
			device.BeginScene();
			device.VertexFormat = CustomVertex.PositionNormalColored.Format;
			device.SetStreamSource(0, vb, 0);
			device.DrawPrimitives(PrimitiveType.TriangleList, 0, 1);

			device.EndScene();

			device.Present();
			this.Invalidate();

		}
 
ah, das sagt mir doch gleich viel mehr ^^

gut, scheinbar muss ich mich also erstmal sehr viel mit C beschäftigen, könntest du mir dort direkt einen hinweis geben wie es ratsam wäre zu beginnen und ob man C, C+ oder C# nehmen sollte ( werde mir nacher mal die genauen unterschiede anlesen ).
Ich schätze ein Buch wäre keine schlechte wahl ;)
 
Osbes said:
gut, scheinbar muss ich mich also erstmal sehr viel mit C beschäftigen

du kannst das auch in visual basic, delphi, python, java oder perl machen, wenn es nicht so kompliziert sein soll. ist immer die frage, was du damit eigentlich machen willst. das da oben mit den kugeln, was du meintest, ist simpel mit flash und action script gemacht (ein grund dafür, warum es so viele flash spiele gibt :z ).
 
Back
Top Bottom