Deutsch
PHP, HTML & JavaScript- Forum

3D Grafik - WebGL mit three.js

 
- Seite 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  
 



 
- Seite 11 -



RudiB.
ByteAttack (19.12.2017)
Ob sich das wirklich JEMAND hier im Forum 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 für den zu schnüren.

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

Das für 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) für 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 Datei 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 Gründen kommt der für 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 für Anfänger.

Dann habe ich zwei Seiten gebaut. Einmal für 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 für 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 für den Hinweis. Hatte ich noch nicht auf dem Schirm!

Bei der Suche bekommt man ja oft als Topergebnis eine ähnliche Frage die in einem Forum 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 Übersicht, 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 Bibliothek 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 heißt: Hochschule für 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 für Firefox designed.

Die Beispiele bei three.js siehe  [...] 
benutzen eine Bibliothek 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  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

332.624 Betrachtungen

Unbenanntvor 0 min.
HofK vor 23 Tagen
Rschnett24.08.2024
Michael W.28.03.2024
Thomas Zielinski17.02.2024
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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