PointArray.setPixelSize() > 1.0f zerschiesst die ganze Sz

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi@all

ich bin neu hier und hab gleich schon ein für mich unlösbares problem, bei dem ich eure hilfe bräuchte. :roll:
ich habe ein aus PointArray aufgebaute (planeten-)kugel und zwei kleine (mond-)kugel, die Sphere()-objekte sind.
wenn ich bei der PointArray-Kugel setPointSize(2.0f) (allgemein > 1f) einstelle, zerschiesst es mir die beiden
kleinen mond-kugeln. und zwar sind dann um diese beiden mondkugel lange linien und große flächen in der
jeweiligen farbe, so dass die szene verunstaltet wird. setze ich setPointSize(1.0f) ist wieder alles in butter.

ich muss dieses problem aber irgendwie hinbekommen, da mein punkte unbedingt die größe 5 haben müssen...

vielen dank,
elfarid

hier ist der code:
Code:
public BranchGroup newPixelSphere() {
		BranchGroup returnBG = new BranchGroup();
		shadingCap.setBGCapability(returnBG);
		returnBG.setUserData(new String("pixelSphereBG"));
        	pixel.setUserData(new String("Pixel"));
		PointAttributes paPixel = new PointAttributes();
        	paPixel.setPointSize(1.0f);
        	paPixel.setPointAntialiasingEnable(false);
        	Appearance pixelApp = new Appearance();
        	pixelApp.setPointAttributes(paPixel);
		Shape3D pixelShape = new Shape3D(pixel, pixelApp);
		shadingCap.setSCapability(pixelShape);
		pixelShape.setUserData(new String("Pixel-Kugel"));
		....
        	returnBG.addChild(pixelShape);
        	
        	return returnBG;
        }
 

Oxygenic

Bekanntes Mitglied
Ist das sinnvoll, eine Sphere zu verwenden, die nur mit Punkten dargestellt wird?

Ansonsten wäre es interessant zu wissen, auch welcher Plattform du arbeitest. Pixelgrößen und Liniendicken lassen sich beispielsweise unter DirectMurx nicht verändern.

cu

Oxy

http://forum.javacore.de - das Java-Forum!
http://www.3dchat.org - Welcome To The unreal World!
 

elfarid

Mitglied
hi,

ja es geht darum dass ich ein modul für beleuchtungsmodelle implementieren muss.
da man bei einem Sphere objekt nicht auf die einzelnen pixel zugreifen kann, hab
ich mir halt selbst eine kugel aus einem PointArray (mit ca 50000 punkten ;-)) aufgebaut. (am anfang
hatte ich noch 700000punkte, aber das war etwas zu speicherintensiv. dann habe ich die anzahl der
punkte verringert, aber jetzt wirkt die kugel "durchsichtig". also wollte ich zum ausgleich die punkte
größer machen. wenn ich dies tue sieht die kugel wieder top aus, aber dann passiert halt diese sch**..
ja ich arbeite mit direktMurX unter xp pro.
aber ich KANN die pixelgröße verändern. nur dann zerschiesst sich eben das bild. hab leider
kein web-space, sonst würde ich mal ein paar bilder zeigen.
die linien sind aus einem Box() objekt, der zwei ganz kleine breiten und eine grosse länge hat...

elfarid
 

Oxygenic

Bekanntes Mitglied
Also Sun hat spezifiziert, dass es sowas unter DirectMurX nicht gibt (AFAIK ist das eine Limitierung durch DirectX). Bei mir sieht das so aus, dass veränderungen der Pixelgrößen schlichtweg nicht wirksam werden, wenn dennoch versucht wird, diese zu modifizieren. Bei dir ist das Resultat halt ein wenig anders ;-)

Versuch' doch mal die OpenGL-Version des J3D-Paketes, es wäre doch recht spannend zu sehen, wie da die Ergebnisse aussehen.

cu

Oxy

http://forum.javacore.de - das Java-Forum!
http://www.3dchat.org - Welcome To The unreal World!
 

elfarid

Mitglied
@oxy

kann ich sowohl die DirectX als auch die OpenGL version installieren?
wie sehe ich eigentlich, welche ich gerade habe?

elfarid

ich habe gerade alles platt geamcht und java3d-1_3_1-windows-i586-directx-sdk.exe installiert.
setpointsize wirkt sich wunderbar auf die kugel aus. aber die sphere und box spinnen trotzdem!
 

elfarid

Mitglied
also hier meine ergebnisse:

1. mit j3d auf directx zerschiesst das bild NICHT. die punktgröße lässt sich ändern, aber das programm
wird sehr sehr langsam (wen wunderts, MS halt...). ausserdem gibt es dann probleme bei der berechnung
der farbe, aber das ist jetzt ein anderes problem.
2. mit j3d auf opengl ist das programm schnell, aber bei änderung der punktgröße zerschiesst das bild.
ich tendiere zu opengl, wegen der geschwindigkeit.
falls jemand was besser weiss, bitte antworten

elfarid
 

Oxygenic

Bekanntes Mitglied
Also wenn du mit der OpenGL-Version auf das Problem stößt, dann bist du im Ar***. Leider sind nicht wenige GraKa-Teiber mit einer lausig schlechten OGL-Schnittstelle ausgestattet, so wie deine vermutlich auch. Lösung: Treiberupdate oder Linux installieren ;-)

Hast du schon mal in Suns Bug-Database nach dem Problem gesucht?

cu

Oxy

http://forum.javacore.de - das Java-Forum!
http://www.3dchat.org - Welcome To The unreal World!
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben