Italia
PHP, HTML & JavaScript- Foro

3D Grafik - WebGL mit three.js

 
- Page 1 -



HofK
Auf einen heißen Tipp von IF hin, habe ich mir mal
three.js  [...]  angeschaut. Da  [...]  (ganz unten) die ersten Resultate.
 
31.01.2016  
 



 
- Page 11 -



RudiB.
ByteAttack (19.12.2017)
Ob sich das wirklich JEMAND hier im Foro wirklich anschaut? Wage ich zu bezweifeln... ich persönlich finde deine Arbeit toll!


Korrektur nicht böse gemeint Byte Attack......
ansonsten....diese Arbeit, diese Hingabe.... ich würdige diese Arbeit sehr....wenn ich mehr Zeit hätte würde ich mich gerne mehr damit auseinandersetzen....das ist die Zukunft .....glaubt mir, oder auch nicht.....Das WEB ist jetzt unsere Zukunft....Das WEB wird unser Untergang sein.....
Muss nicht jeder meiner Meinung sein...
 
FreeProfan
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
19.12.2017  
 




HofK
... Es war doch gerade Weihnachten, wo mittendrin auf der Seite  [...]  der Schneemann ein Paket unter den Baum geschoben hat. Jetzt schon wieder Weihnachten?

Da bin ich vor lauter Funktionen-Geometrie gar nicht dazu gekommen, ein neues per den zu schnüren.

Weil ich aber gerade mal wieder nach der GPU Programmazione geschaut habe, kann ich wenigstens einen Weihnachtgruß in Form eines Links senden.

Das per Anfänger  [...] 



und wer das versteht [...]  ist garantiert kein Anfänger mehr!



___________________________________________________________

FROHES FEST

___________________________________________________________
 
23.12.2017  
 




p.specht

Blume OK (toll!), zweites Link Vollabsturz mit PC abwürgen und neu starten...
Gruss
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
25.12.2017  
 




HofK
p.specht (25.12.2017)
Vollabsturz mit PC abwürgen und neu starten...



Das war nicht Sinn der Sache! Welches Sytem (Grafikkarte / Browser) ?

Mit Firefox auf meinem mittlerweile 5 Jahre altem Laptop mit mittelmäßiger Grafikkarte und defekter externer (ersetzt durch einen 50€ Stick USB zu HDMI aus Fermost) per den externen 22 Zoll Monitor ruckelt es zwar etwas - geht aber.

Da mein Note2 im Sommer plötzlich nicht mehr wollte, habe ich ein P10Lite erstanden. Selbst da dreht sich der Weihnachtbaum ruckelnd ganz gemächlich. Schaltet man den Code weg, sieht es ganz ordentlich aus.
 
25.12.2017  
 




p.specht

Klapprechner, Integriertes Intel HD Grafiksystem, jene letzte Version die noch ohne Userseitige GPU-Programmiermöglichkeit daherkam...
Firefox Quantum 64bit.
Die anderen Beispiele klappen aber!
 
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
26.12.2017  
 




HofK
Noch vor 2018 !
...
____________________________

... ist der Export einer BufferGeometry Definition mit dem Addon THREEf als JavaScript in der Form von Arrays fertig geworden.

Man definiert im Quellcode (etwa bei Zeile 150) seine Geometrie durch Abwandlung/ Ergänzung der Parameter. Natürlich muss man sich den Quellcode, die benötigten weiteren Scripte und eventuell die Grafiken vorher herunterladen.  Dann öffnet man die HTML File im Firefox-Browser, da andere Browser lokal keine Grafiken laden! Oder man installiert sich lokal einen Webserver. Bei Funktions-Parametern mit Zeitkomponente kann man dann eine Zeit auswählen. Per Button erfolgt der Export in das Browserfenster. Da keine weiteren .innerHTML Texte vorhanden sind, kann man per Strg+A und Strg+C den kompletten JavaScript Code einfach kopieren.

Da alle Werte als Zahlen vorliegen, kann man diese per Hand manipulieren.

Die grafische Manipulation (siehe Beitrag von vor knapp zwei Wochen weiter oben) birgt noch einige Probleme und muss bis 2018 warten.

Ausprobieren dort:  [...]  bzw.  [...] 



Aus der Vorversion (Texte noch etwas anders):

 
29.12.2017  
 




HofK
Meine Seite threejs.hofk.de besteht ja lediglich aus einer Aneinanderreihung von Inhalten/ Beispielen. Sie ist ganz einfach "handgemacht" und setzt sich aus immer wieder kopierten und variierten Blöcken zusammen.

Zwar gibt es bei meinem Anbieter auch einen Baukasten, aber aus verschiedenen Stabilire kommt der per mich überhaupt nicht in Frage.

Also habe ich mich einmal umgeschaut.

Es gibt ein sehr geeignetes hiesiges Angebot vollständig in deutscher Sprache. Kostenlos in der Einstiegsvariante mit sehr verträglicher Eigenwerbung. Dazu noch am PC - Windows und auf dem Tablet/Smartphone zu bearbeiten.  [...] 

Ich habe den Creator genommen, Dolphin ist wohl noch einfacher per Anfänger.

Dann habe ich zwei Seiten gebaut. Einmal per eine ganz andere Sache als three.js - auch von nicht so IT-Affinen gut zu handhaben.



Dann ein Versuch mit three.js.

Es gibt eine ganze Reihe von vorbereiteten Elementen, aber ich habe keinen Zeichenbereich per 3D Grafik gefunden.

Man kann aber HTML und JavaScript einbinden. Und das funktioniert!

Mein einziges Problem ist, dass ich die Zeichenfläche nicht positioniert bekomme. Sie ist immer am Ende der Seite noch unter dem footer.



Dafür funktioniert die Checkbox einwandfrei und die Hummel "fliegt" dann.

Die Seite ist noch eine Baustelle, deshalb hier noch kein Link.
* Findige werden sie aber finden. Dann daran denken: Unfallgefahr auf Baustellen!
 
 
03.01.2018  
 




HofK
Habe die "Webbaustelle" ein wenig beräumt.

Wer den Link noch nicht erraten hat: [...] 



Wie man sieht, habe ich das Layout noch einmal gewechselt.
Von Berlin auf Havanna. Letzteres hat als einzige der Vorlagen einen 3D Touch.

Mit überschaubarem Aufwand kann man sogar das Layout bestehender Seiten - wenn sie nicht zu umfangreich sind - ändern.

So musste ich, weil es nicht gut aussah, den Button-Style bei allen Buttons ändern. Es gibt stets drei zur Auswahl, die aber in jedem Layout völlig anders wirken.

Mittendrin hatte ich ein Update von Firefox. Danach stellte ich fest, dass die Grafik vom Beispiel mit der Linse (Refraktion) nicht oder nicht ordentlich angezeigt wird. Opera und Chrome machen es richtig. Alle anderen Beispiele sind auch bei Firefox ok. Wer Lust hat, mal testen. Habe bereits ein Feedback an Mozilla abgesetzt.
 
 
05.01.2018  
 




p.specht

Dir sicher längst bekannt:  [...] 
Dort gibts auch einen Kurs zur three.js
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
06.01.2018  
 




HofK
p.specht (06.01.2018)
Dir sicher längst bekannt:  [...] 
Dort gibts auch einen Kurs zur three.js


Danke per den Hinweis. Hatte ich noch nicht auf dem Schirm!

Bei der Cerca bekommt man ja oft als Topergebnis eine ähnliche Frage die in einem Foro gestellt wurde und die dann nicht beantwortet wurde. Und oft ältere Dinge, die nicht mehr relevant sind. Manchmal habe ich erst auf Seite 12, 18, 24 oder so zufällig einen interessanten Artikel gefunden.  


Die Vorlesungen bieten eine schöne Panoramica, habe mal in die Videos reingeschaut. Ist allerdings sehr zeitaufwändig sie vollständig anzuschauen. Sie haben auch nur untere zweistellige Aufrufzahlen. Die Studenten waren sicher fast alle in der Vorlesung anwesend!

Die Videos sind Stand 2015. Zur Physik gibt es da das Problem wie ich es bei meinem Brett-Beispiel (siehe weiter oben)  [...]  angegeben habe. Die Biblioteca physijs  [...]  ist seit Oktober 2015 nicht mehr verändert worden. Ich habe das mit neueren Versionen von three.js nicht zum Laufen bekommen. Allerdings war ich da noch selbst neu bei three.js.

Wo hat sich der Kurs (als Schriftstück?) versteckt? Hab' ich nicht gefunden.
 
06.01.2018  
 




p.specht

Vermutlich setzt das voraus, daß man sich als Student einschreibt. Die haben da ein eigenes System. Ich zum Beispiel musste lange suchen, um endlich rauszufinden, was HAW eigentlich è: Hochschule per Angewandte Wissenschaften. Naja. Der Weitz ist aber didaktisch gut, er begründet alles. In Mathe hab ich selten komplizierte Beweise so einleuchtend erklärt gefunden (OK, klingt nach fanpost)
Gruss aus Wien!
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
06.01.2018  
 




HofK
Bei der Visualisierung der Quaternionen  [...] 
habe ich HTML5 Elemente input range und number benutzt und per Firefox designed.

Die Beispiele bei three.js siehe  [...] 
benutzen eine Biblioteca dat.gui

Einfaches Beispiel:  [...] 

Die Sache ist nicht ganz neu und gibt eine Struktur vor.

Also habe ich mich mal umgesehen wie man das "frei" und beweglich mit HTML5 realisieren kann. Anfangs schien das ganz einfach, bis ich dort  [...] 
das noch längst nicht überwundene Browserchaos studieren konnte.

Das kleine Beispiel sollte man also mit Firefox öffnen.



Der Schieber macht auch bei Firefox kleine Probleme, bei anderen Browsern funktioniert das so nicht. Man muß den Balken anklicken und sofort ziehen. Bei Klick auf den Schieber und ziehen bewegt sich der span.

Da kann man es testen:  [...] 

Der Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title> HTML5 GUI </title>
<!--
sehr gute Erklärung zu den Problemen bei range siehe
https://www.mediaevent.de/css/form-formulare.html
-->
<style>

#pane1 {

    overflow: hidden;
    position: absolute;
    top: 80px;
    left: 20px;
    width: 250px;
    height: 260px;
    z-index: 99;
    background: #ffffff;
    border: 2px solid #2323c5;
    border-radius: 6px;
    padding: 0px;
    text-align: center;

}

#pane2 {

    overflow: hidden;
    position: absolute;-157,-11,pane1
    left: 20;
    top: 460px;
    width: 200px;
    height: 160px;
    z-index: 95;
    background: rgba(255,255,0,0.95);
    border: 2px  solid #eeee00;
    border-radius:6px;
    padding: 0px;
    text-align: center;

}

#title1 {

    font-family: monospace;
    background: #2327c5;
    color: white;
    font-size: 21px;
    height: 24px;
    text-align: center;

}

input[type="range"] { width: 180px }
</style>
</head>
<body ondragover="drag_over(event)" ondrop="drop(event)" >
<div style="position: absolute; top: 10px; left: 10px; text-align: left;">
three.js BufferGeometry - move GUI and examples
</div>
<span id="pane1" draggable="true" ondragstart="drag_start(event)">
<span id="title1"> - move GUI - <br /> </span>
Rotation <br />
<input type="radio" name="choose" id="useRange">
<input type="range"	id="range1"	min="0" max="6.28" value="0" step="0.01" >  <br />
<input type="radio" name="choose" id="useNumber" checked="checked">
<input type="number" id="number1" min="0" max="6.28" value="0" step="0.1" >
</span>
<span id="pane2" draggable="true" ondragstart="drag_start(event)">
Examples
<img src="further_examples.png" width="159" height="96">
</span>
</body>
<script src="three.min.89.js"></script>
<script src="OrbitControls.js"></script>
<script src="THREEx.WindowResize.js"></script>
<script>
'use strct'
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 20000 );
camera.position.set( 250, 100, 60 );
var renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setSize( window.innerWidth, window.innerHeight );
renderer.setClearColor( 0xdddddd, 1 );
//var container = document.getElementById( 'divMain' );
var container = document.createElement('div');
document.body.appendChild( container );
container.appendChild( renderer.domElement );
THREEx.WindowResize( renderer, camera );
var controls = new THREE.OrbitControls( camera, renderer.domElement );
controls.enableZoom = true;
// material
var uvTex	= new THREE.TextureLoader().load( "uvgrid_w_0_9 .jpg" );
var material = new THREE.MeshBasicMaterial( { map: uvTex, side: THREE.DoubleSide } );
var geometry = new THREE.CylinderBufferGeometry(80, 80, 80, 10, 1, true);
// mesh
var mesh1 = new THREE.Mesh( geometry, material );
scene.add( mesh1 );
//mesh1.rotation.x = Math.PI / 2;
var alpha
animate();
//...................................

function animate() {

    requestAnimationFrame( animate );

    if ( useRange.checked ) {

        alpha = range1.value;
        number1.value = alpha;

    }

    if ( useNumber.checked ) {

        alpha = number1.value;
        range1.value = alpha;

    }

    mesh1.rotation.y = alpha;
    renderer.render( scene, camera );
    controls.update();

}

// drag/drop functions from https://stackoverflow.com/questions/6230834/html5-drag-and-drop-anywhere-on-the-screen

function drag_start(event) {

    var style = window.getComputedStyle(event.target, null);
    var str = (parseInt(style.getPropertyValue("left")) - event.clientX) +',' + (parseInt(style.getPropertyValue("top")) - event.clientY)+ ',' + event.target.id;
    event.dataTransfer.setData("Text",str);

}

function drop(event) {

    var offset = event.dataTransfer.getData("Text").split(',');
    var dm = document.getElementById(offset[2]);
    dm.style.left = (event.clientX + parseInt(offset[0],10)) +'px';
    dm.style.top = (event.clientY + parseInt(offset[1],10)) +'px';
    event.preventDefault();
    return false;

}

function drag_over(event) {

    event.preventDefault();
    return false;

}

</script>
</html>
 
08.01.2018  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

360.887 Views

Untitledvor 0 min.
iFGestern (03:02)
Walter15.06.2025
Paul Glatz23.05.2025
Uwe ''Pascal'' Niemeier23.03.2025
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie