Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

41

08.09.2012, 15:42

Oh nein es geht schon wider alles drüber und drunter!

Erstmal ist hier ein Model in dem Terrain, ich kann es verschieben und alles. :D


Doof nur, dass es entweder immer hinter oder immer vor dem Terrain ist. Je nach der Reihenfolge in der die Methoden aufgerufen werden.

Wie kann man das ändern? Worauf muss ich achen, oder oder wonach muss ich googeln?

Diese Methode Gibt die Models wieder:



private void DrawTestModel()
{
SamplerState ss = new SamplerState();
ss.AddressU = TextureAddressMode.Clamp;
ss.AddressV = TextureAddressMode.Clamp;
device.SamplerStates[0] = ss;

DepthStencilState dss = new DepthStencilState();
dss.DepthBufferEnable = false;
device.DepthStencilState = dss;


Matrix[] ModelTransforms = new Matrix[testmodel.Bones.Count];
testmodel.CopyAbsoluteBoneTransformsTo(ModelTransforms);
int i = 0;
foreach (ModelMesh mesh in testmodel.Meshes)
{
foreach (Effect currentEffect in mesh.Effects)
{
Matrix worldMatrix = ModelTransforms[mesh.ParentBone.Index] * Matrix.CreateTranslation(new Vector3(0,20,0));
currentEffect.CurrentTechnique = currentEffect.Techniques["Textured"];
currentEffect.Parameters["xWorld"].SetValue(worldMatrix);

currentEffect.Parameters["xView"].SetValue(viewMatrix);
currentEffect.Parameters["xProjection"].SetValue(projectionMatrix);
currentEffect.Parameters["xEnableLighting"].SetValue(true);
currentEffect.Parameters["xLightDirection"].SetValue(lightDirection);
currentEffect.Parameters["xAmbient"].SetValue(0.5f);

currentEffect.Parameters["xTexture"].SetValue(skyboxTextures[i++]);
}
mesh.Draw();
}

dss = new DepthStencilState();
dss.DepthBufferEnable = true;
device.DepthStencilState = dss;
}

LG


EDIT: Ok Sorry hat schon geklappt :D
Bilder zu meinem Projekt: ParSim

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Horus« (08.09.2012, 15:48)


42

08.09.2012, 19:10

Ein Gebäude oder so!
Riesige Berge im Hintergrund :D




Habe ne Frage zum Mutitexturing, momentan, wie im Tutorial sind 4 Texturen zum Multitexturing in den Terrain - Vertizes.
Wenn ich nun so 10 - 20 Texturen fürs Terrain bräuchte, erweitere ich dann einfach den Strucht für die Vertizes?
Oder ist das zuviel und irgendwie der falsche Ansatz?


Außerdem frage ich mich ob ich hunderte Bäume Gebäude usw. als Models laden kann, oder wird da eher die Graka überlastet?

Danke im Voraus!
Bilder zu meinem Projekt: ParSim

43

09.09.2012, 13:01

Also man kann viele Models anzeigen :D


5k Models hängen aber schon etwas

Bleibt die Frage zum Multitexturing! Weiß das keiner?

LG
Bilder zu meinem Projekt: ParSim

FSA

Community-Fossil

  • Private Nachricht senden

44

09.09.2012, 13:09

Du zeigst 5k Modelle an? Mit einer Framerate von 1 Frame per hour oder wie? :D Da würde ich auf jeden Fall Instancing benutzen :)

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

45

09.09.2012, 13:35

Also bei 5k Models hackt es kaum.
Man kann Instancing bei XNA Models verwenden?
Leider habe ich nur eine grobe Vorstellung von Instancing.


Wenn das ordentlich was bringt, dann erstell ich die Vegetation etc auch aus Models :D
Kannst du grob in % abschätzen wie viel mehr Leistung rausholbar wäre..?

Bleibt die Frage mit dem Multitexturing.
Wenn keiner weiß ob es sinnvoll ist mit 10 und mehr Texturen, dann muss ich erst die Variable für die Multitextured Vertizes umbauen :wacko: das dauert ewig, und ob es dann geht ?(

LG
Bilder zu meinem Projekt: ParSim

46

09.09.2012, 23:21

Mein erstes Game hammer geil oder! Gleich 3D :) Noch lange nicht fertig.



Jetzt werde ich mal die Grafik kapseln und das Multitexturing aufmotzen!

Es lassen sich jetzt verschiedene Gebäude laden. Mit Texturen. Und platzieren. NOCH mit Zufallspositionen.

Kompletter Sourcecode so weit hier


;)
Bilder zu meinem Projekt: ParSim

CodeBase

Treue Seele

Beiträge: 98

Wohnort: Österreich -> Salzburg

Beruf: Datenbank Entwickler

  • Private Nachricht senden

47

10.09.2012, 15:03

Schaut cool aus ;) weiter so

MitgliedXYZ

Alter Hase

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

48

10.09.2012, 16:36

Du machst aber schnell Fortschritte... Hast doch jetzt bestimmt die letzten Tage in allen Pausen dran gearbeitet, oder?
Sieht jedenfalls echt gut aus.

49

10.09.2012, 16:56

^^

Hey danke, ja in der Tat sitze ich ständig an dem Sourcecode.

Die Grafik ist jetzt schön gekapselt. Ich nutze den GraphicsDeviceManager zum Datenaustausch.
An der Grafik sind sonst praktische alle Member private.

Es war erst durch Instancing des Main Process möglich :D
Was das alles gibt. Bei C#. Hat lange gedauert das zu verstehen...

Das zufügen von Texturen macht änderungen der .fx nötig. High Level Shading Language habe ich noch nie gesehen. Ob das auf anhieb klappt. :/

Aber sonst frag ich ;)
Bilder zu meinem Projekt: ParSim

50

10.09.2012, 17:27

HLSL ist jetzt auch nicht so sonderlich wild, wenn du dich mit der Pipeline von DirectX auskennst und grob weißt was Shader darstellen.

Werbeanzeige