<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
	<channel>
		<title>BlitzBasic Portal Worklogs - Trace It! - Raytracing mit BB</title>
		<link>https://www.blitzforum.de/worklogs/188/</link>
		<description>Worklog von Darren</description>
		<language>de</language>
		<managingEditor>mail@blitzforum.de</managingEditor>
		<webMaster>mail@blitzforum.de</webMaster>
		<pubDate>Tue, 02 Jun 2009 18:00:02 +0200</pubDate>
		<lastBuildDate>Tue, 02 Jun 2009 18:00:02 +0200</lastBuildDate>

		<item>
			<title>Polygone, Polgyone und Polygone!</title>
			<link>https://www.blitzforum.de/worklogs/188/#1495</link>
			<guid>https://www.blitzforum.de/worklogs/188/#1495</guid>
			<author>Darren</author>
			<description>guten tag allerseits,&lt;br /&gt;&lt;br /&gt;ein weiterer meilenstein wurde von mir in den boden gehauen. mittlerweile kann ich auch schnittpunkte mit dreiecken berechnen. hei&amp;szlig;t im klartext: jetzt gehts rund! Naja ganz so schlimm ist es nicht aber zumindest lassen sich jetzt schonmal sch&amp;ouml;nere und interessantere bilder erstellen.&lt;br /&gt;&lt;br /&gt;Die Polygone werden in einer seperaten Datei gespeichert. wieder xml. scheint mir das komfortabelste zu sein. Es werden erst einmal nur eckpunkte gespeichert. die normale wird beim laden berechnet und uv-koordinaten brauchts bis jetzt noch nicht.&lt;br /&gt;&lt;br /&gt;im shading wurde jetzt einiges optimiert. jetzt wird an jedem pixel f&amp;uuml;r jeden material-kanal erst einmal die farbe ohne lighting berechnet, indem in einer getrennten funktion shader und schnittpunkt zur kanal-farbe verarbeitet werden.&lt;br /&gt;&lt;br /&gt;ansonsten hab ich nochn bisschen aufger&amp;auml;umt und bisschen getweaked, wo ich was gefunden habe.&lt;br /&gt;&lt;br /&gt;so long&lt;br /&gt;&lt;br /&gt;hier nochn neuer screenshot:&lt;br /&gt;&lt;a href=&quot;http://dl.getdropbox.com/u/416097/test10088630.bmp&quot; target=&quot;_blank&quot;&gt;http://dl.getdropbox.com/u/416097/test10088630.bmp&lt;/a&gt; (900 KB)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;~Editiert~&lt;/b&gt;&lt;br /&gt;Keine BMPs direkt anzeigen lassen! Eigentlich: Gar keine BMPs im Internet benutzen. MfG D2006</description>
			<pubDate>Tue, 02 Jun 2009 18:00:02 +0200</pubDate>
		</item>

		<item>
			<title>Matrizen, Specular...</title>
			<link>https://www.blitzforum.de/worklogs/188/#1484</link>
			<guid>https://www.blitzforum.de/worklogs/188/#1484</guid>
			<author>Darren</author>
			<description>Hallo zusammen!&lt;br /&gt;&lt;br /&gt;Bevor ich mich den technischen Details widmen werde, m&amp;ouml;chte ich alle Interessierten mal auf meine Facharbeit hinweisen, die ich im Rahmen vom Mathe-Leistungskurs verfasst habe. Gab volle Punktzahl drauf. Zwar hatte der Lehrer keine Ahnung vom Thema selbst, doch scheinbar hat ihn die Art des Erkl&amp;auml;rens gefallen. Hier mal ein Link f&amp;uuml;r alle interessierten:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://dl.getdropbox.com/u/416097/fa_final.pdf&quot; target=&quot;_blank&quot;&gt;http://dl.getdropbox.com/u/416097/fa_final.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bis jetzt ist mein Programm bis auf das Vorhandensein von getracten Schatten eine praktische Umsetzung meiner Facharbeit. Wer also mal Lust hat in den code zu schauen, wird sich besser zurechtfinden, wenn er sich die Arbeit mal zu Gem&amp;uuml;te f&amp;uuml;hrt.&lt;br /&gt;&lt;br /&gt;Matrizen in der Schnittpunktberechnung haben mich viel Zeit und Nerven gekostet, weil ich nur wusste, _dass_ ein korrektes Tracen des Strahles nur funktioniert, wenn ich ihn in die lokalen Objektkoordinaten transformiere, dort die Berechnungen anstelle und wieder zur&amp;uuml;ck transformiere. Jedoch hatte ich noch keinen wirklichen Plan, _wie_ so eine Transformationsmatrix angewendet geschweige denn berechnet wird. Also musste ich mich erst einmal ein bisschen in die Materie einarbeiten. (traurig, dass ich in bayern abitur gemacht habe, matheLK hatte und trotzdem nicht von matrizen wei&amp;szlig; -.-*) Mittlerweile wird der Strahl in jedes KOSY richtig transformiert. Jedoch habe ich Rotation noch nicht implementiert. Sollte aber kein weiteres Problem mehr darstellen. Bis jetzt sind diese Transformationen nur interessant, wenn man &amp;quot;Eier&amp;quot; darstellen will. Kugeln k&amp;ouml;nnen also bereits gestaucht und gestreckt werden, und auch die Normale am Schnittpunkt wird richtig transformiert. Zwar nicht ganz richtig, weil ich bis jetzt noch die inversa matrix verwende und nicht die transponierte Matrix der Inversen, aber das ist auch erst bei Rotationen wichtig.&lt;br /&gt;&lt;br /&gt;Gleich danach habe ich den Glanzlichtanteil mit reingehackt. War nicht so schwierig, weil ich das ja schon einmal getan hatte, und nur kurz in meiner Facharbeit f&amp;uuml;r die exakte Formel nachschlagen musste.&lt;br /&gt;&lt;br /&gt;Neben dem Color-Shader, gibt es jetzt auch einen Grid-Shader, der in bestimmten Abst&amp;auml;nden in x-Richtung eine Linie von bestimmter Breite zeichnet. Im Shader werden die beiden Farben, der Abstand der Linien und die breite der Linie gespeichert und beim Shading unter Ber&amp;uuml;cksichtigung der Weltkoordinaten die Farbe im jeweiligen Kanal berechnet. Die Shader sind auch kanalunabh&amp;auml;ngig. Sie k&amp;ouml;nnen bis jetzt im Farb- und Glanzlichtkanal verwendet werden.&lt;br /&gt;&lt;br /&gt;Als n&amp;auml;chstes m&amp;ouml;chte ich das Kameramodell ein wenig ausbauen. Es soll nicht mehr die Blickrichtung gegeben sein, sondern die Rotation um alle drei Welt-Koordinatenachsen. Macht die ganze Sache ein wenig flexibler und anschaulicher. Au&amp;szlig;erdem kann ich mich dann gleich mit der Rotation befassen und die dann bei den Objekten mit einbauen.&lt;br /&gt;&lt;br /&gt;Au&amp;szlig;erdem ist das hier die erste Ver&amp;ouml;ffentlichung des bis jetzt bestehenden Quellcodes. Somit kann jetzt jeder der will etwas dazu beitragen. Sei es ein kleiner Bugfix, oder hier und da ein kleines Speedup. Ich w&amp;uuml;rde mich nat&amp;uuml;rlich noch mehr dar&amp;uuml;ber freuen, wenn sich der eine oder andere dazu bereit erkl&amp;auml;ren w&amp;uuml;rde aktiv an dem Projekt mitzuarbeiten. Nat&amp;uuml;rlich k&amp;ouml;nnt ihr durch die GPL-Lizenz auch euer eignes Ding mit dem Code machen. W&amp;uuml;rde mich auch nicht st&amp;ouml;ren und ich w&amp;auml;re gespannt was dabei herauskommen w&amp;uuml;rde. Wer also Interesse hat, mir in irgendeiner Art zu helfen, kann sich per PN bei mir melden.&lt;br /&gt;&lt;br /&gt;Hier ist der Link zum Archiv mit einer Binary, dem Source und einer Sample-Szene(620kb):&lt;br /&gt;&lt;a href=&quot;http://dl.getdropbox.com/u/416097/traceit.zip&quot; target=&quot;_blank&quot;&gt;http://dl.getdropbox.com/u/416097/traceit.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Und f&amp;uuml;r alle die wissen wollen, was das Tool bis jetzt produziert:&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://dl.getdropbox.com/u/416097/test.bmp&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Vielen Dank f&amp;uuml;r die erbrachte Aufmerksamkeit!</description>
			<pubDate>Thu, 28 May 2009 16:33:20 +0200</pubDate>
		</item>

		<item>
			<title>Kompletter rewrite nummer was weiß ich</title>
			<link>https://www.blitzforum.de/worklogs/188/#1474</link>
			<guid>https://www.blitzforum.de/worklogs/188/#1474</guid>
			<author>Darren</author>
			<description>guten tag miteinander!&lt;br /&gt;&lt;br /&gt;zwar habe ich &amp;uuml;bermorgen m&amp;uuml;ndliche abiturpr&amp;uuml;fung und eigentlich sollte ich ein schlechtes gewissen haben, &amp;uuml;berhaupt ein paar minuten am PC zu verbringen, doch ich konnte einfach nicht widerstehen. ich habe meinen kleinen raytracer noch einmal von grund auf neu geschrieben. diesmal habe ich gleich allgemeiner und modularer begonnen.&lt;br /&gt;&lt;br /&gt;es gibt bereits ein eigenes kleines und einfaches &amp;quot;dateiformat&amp;quot;. als syntax wird xml benutzt und mit der blitzXML-library ausgelesen. nun shader habe ich auch schon fest mit reingestrickt. bis jetzt gibt es zwar nur einen color/shader, aber der reicht ja auch noch, zumal ich gerade noch mehr an den schnittpunkt-algos rumfurwerkel als am shading. geplant ist ein gridshader, ein verlaufsshader, ein imageshader und ein cel-shader.&lt;br /&gt;hier mal ein kleines beispiel f&amp;uuml;r eine szenen-datei. diese benutzen ich auch die ganze zeit um meine renders zu testen:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Code: &lt;/b&gt;&lt;span style=&quot;font-size:0.8em; display:inline;&quot; id=&quot;showcodebox0&quot;&gt; &lt;a href=&quot;javascript&amp;#058;show_code('0')&quot;&gt;[AUSKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;font-size:0.8em; display:none;&quot; id=&quot;hidecodebox0&quot;&gt; &lt;a href=&quot;javascript&amp;#058;hide_code('0')&quot;&gt;[EINKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;div id=&quot;codebox0&quot; class=&quot;codebox&quot; style=&quot;max-height: 200px;&quot; onload=&quot;check_code('0');&quot;&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;file&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;scene&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;width&amp;gt;400&amp;lt;/width&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;height&amp;gt;300&amp;lt;/height&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;cam_x1&amp;gt;0&amp;lt;/cam_x1&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;cam_x2&amp;gt;10&amp;lt;/cam_x2&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;cam_x3&amp;gt;-10&amp;lt;/cam_x3&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;cam_dir_x&amp;gt;0&amp;lt;/cam_dir_x&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;cam_dir_y&amp;gt;-0.4&amp;lt;/cam_dir_y&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;cam_dir_z&amp;gt;1&amp;lt;/cam_dir_z&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;fov&amp;gt;65&amp;lt;/fov&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;amb_r&amp;gt;0.2&amp;lt;/amb_r&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;amb_g&amp;gt;0.2&amp;lt;/amb_g&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;amb_b&amp;gt;0.2&amp;lt;/amb_b&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;output_file&amp;gt;test&amp;lt;/output_file&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/scene&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;sha&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;shader&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;shader1&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;typ&amp;gt;0&amp;lt;/typ&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;col_r&amp;gt;0.1&amp;lt;/col_r&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;col_g&amp;gt;0.8&amp;lt;/col_g&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;col_b&amp;gt;0.9&amp;lt;/col_b&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/shader&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;shader&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;shader2&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;typ&amp;gt;0&amp;lt;/typ&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;col_r&amp;gt;0.9&amp;lt;/col_r&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;col_g&amp;gt;0.5&amp;lt;/col_g&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;col_b&amp;gt;0.3&amp;lt;/col_b&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/shader&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;shader&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;shader3&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;typ&amp;gt;0&amp;lt;/typ&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;col_r&amp;gt;0.7&amp;lt;/col_r&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;col_g&amp;gt;0.7&amp;lt;/col_g&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;col_b&amp;gt;0.7&amp;lt;/col_b&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/shader&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/sha&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;obj&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;objct name=&amp;quot;licht1&amp;quot; type=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;pos_x&amp;gt;7&amp;lt;/pos_x&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;pos_y&amp;gt;72&amp;lt;/pos_y&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;pos_z&amp;gt;-7&amp;lt;/pos_z&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;r&amp;gt;1&amp;lt;/r&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;g&amp;gt;1&amp;lt;/g&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;brightness&amp;gt;1&amp;lt;/brightness&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/objct&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;objct name=&amp;quot;ebene&amp;quot; type=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;n1&amp;gt;0&amp;lt;/n1&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;n2&amp;gt;1&amp;lt;/n2&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;n3&amp;gt;0&amp;lt;/n3&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;n4&amp;gt;0&amp;lt;/n4&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;material&amp;gt;boden&amp;lt;/material&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/objct&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;objct name=&amp;quot;kugel1&amp;quot; type=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;pos_x&amp;gt;0&amp;lt;/pos_x&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;pos_y&amp;gt;2&amp;lt;/pos_y&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;pos_z&amp;gt;0&amp;lt;/pos_z&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;scale_x&amp;gt;1&amp;lt;/scale_x&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;scale_y&amp;gt;2&amp;lt;/scale_y&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;scale_z&amp;gt;1&amp;lt;/scale_z&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;radius&amp;gt;1&amp;lt;/radius&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;material&amp;gt;mat1&amp;lt;/material&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/objct&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;objct name=&amp;quot;kugel2&amp;quot; type=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;pos_x&amp;gt;5&amp;lt;/pos_x&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;pos_y&amp;gt;1&amp;lt;/pos_y&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;pos_z&amp;gt;6&amp;lt;/pos_z&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;scale_x&amp;gt;1&amp;lt;/scale_x&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;scale_y&amp;gt;1&amp;lt;/scale_y&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;scale_z&amp;gt;1&amp;lt;/scale_z&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;radius&amp;gt;1&amp;lt;/radius&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;material&amp;gt;bam&amp;lt;/material&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/objct&amp;gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/obj&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;mat&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;material name=&amp;quot;mat1&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;dif_shader&amp;gt;shader1&amp;lt;/dif_shader&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;exponent&amp;gt;5&amp;lt;/exponent&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;spec_r&amp;gt;0.3&amp;lt;/spec_r&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;spec_g&amp;gt;1&amp;lt;/spec_g&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;spec_b&amp;gt;0.2&amp;lt;/spec_b&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;refl_int&amp;gt;1&amp;lt;/refl_int&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;refl_r&amp;gt;1&amp;lt;/refl_r&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;refl_g&amp;gt;1&amp;lt;/refl_g&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;refl_b&amp;gt;1&amp;lt;/refl_b&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/material&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;material name=&amp;quot;bam&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;dif_shader&amp;gt;shader2&amp;lt;/dif_shader&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;exponent&amp;gt;25&amp;lt;/exponent&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;spec_r&amp;gt;0.7&amp;lt;/spec_r&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;spec_g&amp;gt;1&amp;lt;/spec_g&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;spec_b&amp;gt;0.6&amp;lt;/spec_b&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;refl_int&amp;gt;0.5&amp;lt;/refl_int&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;refl_r&amp;gt;1&amp;lt;/refl_r&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;refl_g&amp;gt;1&amp;lt;/refl_g&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;refl_b&amp;gt;1&amp;lt;/refl_b&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/material&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;material name=&amp;quot;boden&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;dif_shader&amp;gt;shader3&amp;lt;/dif_shader&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;exponent&amp;gt;25&amp;lt;/exponent&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;spec_r&amp;gt;0.7&amp;lt;/spec_r&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;spec_g&amp;gt;1&amp;lt;/spec_g&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;spec_b&amp;gt;0.6&amp;lt;/spec_b&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;refl_int&amp;gt;0.5&amp;lt;/refl_int&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;refl_r&amp;gt;1&amp;lt;/refl_r&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;refl_g&amp;gt;1&amp;lt;/refl_g&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;refl_b&amp;gt;1&amp;lt;/refl_b&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/material&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/mat&amp;gt;&lt;br /&gt;&amp;lt;/file&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;und hier ist das logfile, das von dem programm beim ausf&amp;uuml;hren erstellt wird. dient begrenzt auch einigen debuggingzwecken, soll aber vor allem dann die ganze sache bissen benutzerfreundlicher machen.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Code: &lt;/b&gt;&lt;span style=&quot;font-size:0.8em; display:inline;&quot; id=&quot;showcodebox1&quot;&gt; &lt;a href=&quot;javascript&amp;#058;show_code('1')&quot;&gt;[AUSKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;font-size:0.8em; display:none;&quot; id=&quot;hidecodebox1&quot;&gt; &lt;a href=&quot;javascript&amp;#058;hide_code('1')&quot;&gt;[EINKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;div id=&quot;codebox1&quot; class=&quot;codebox&quot; style=&quot;max-height: 200px;&quot; onload=&quot;check_code('1');&quot;&gt;&lt;br /&gt;Found scene-file... processing&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--- &lt;br /&gt;&lt;br /&gt;Starting to parse file&amp;#58; scene1.xml&lt;br /&gt;&lt;br /&gt;Resolution - Width&amp;#58; 400; Height&amp;#58; 300&lt;br /&gt;&lt;br /&gt;Output-File&amp;#58; test.bmp&lt;br /&gt;&lt;br /&gt;Camera-Coords&amp;#58; &amp;#40;0.0/10.0/-10.0&amp;#41;&lt;br /&gt;&lt;br /&gt;Camera-Direction&amp;#58; 0.0 -0.371391 0.928477&lt;br /&gt;&lt;br /&gt;Vertical FOV&amp;#58; 65&amp;deg;&lt;br /&gt;&lt;br /&gt;Ambient-light&amp;#58; 0.2 0.2 0.2&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--- &lt;br /&gt;&lt;br /&gt;Looking for shaders...&lt;br /&gt;&lt;br /&gt;Found 3 shaders... Reading them...&lt;br /&gt;&lt;br /&gt;Loaded Colour-Shader 'shader1'.&lt;br /&gt;&lt;br /&gt;Loaded Colour-Shader 'shader2'.&lt;br /&gt;&lt;br /&gt;Loaded Colour-Shader 'shader3'.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--- &lt;br /&gt;&lt;br /&gt;Looking for materials...&lt;br /&gt;&lt;br /&gt;Found 3 materials... Reading them...&lt;br /&gt;&lt;br /&gt;Created material 'mat1'&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Color-channel&amp;#58; shader1&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Specular with exponent&amp;#58; 5.0 - 0.3 1.0 0.2&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Reflection with intensity&amp;#58; 1.0 - 1.0 1.0 1.0&lt;br /&gt;&lt;br /&gt;Created material 'bam'&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Color-channel&amp;#58; shader2&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Specular with exponent&amp;#58; 25.0 - 0.7 1.0 0.6&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Reflection with intensity&amp;#58; 0.5 - 1.0 1.0 1.0&lt;br /&gt;&lt;br /&gt;Created material 'boden'&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Color-channel&amp;#58; shader3&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Specular with exponent&amp;#58; 25.0 - 0.7 1.0 0.6&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Reflection with intensity&amp;#58; 0.5 - 1.0 1.0 1.0&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--- &lt;br /&gt;&lt;br /&gt;Looking for objects...&lt;br /&gt;&lt;br /&gt;Scene contains 4 objects.&lt;br /&gt;&lt;br /&gt;Created light 'licht1&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Position&amp;#58; &amp;#40;7.0/72.0/-7.0&amp;#41;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Color&amp;#58; 1.0 1.0 1.0&lt;br /&gt;&lt;br /&gt;Created plane 'ebene&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Normal Vector&amp;#58; 0.0 1.0 0.0&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; n4&amp;#58; 0.0&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Material&amp;#58; boden&lt;br /&gt;&lt;br /&gt;Created sphere 'kugel1&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Radius&amp;#58; 1.0&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Center&amp;#58; &amp;#40;0.0/2.0/0.0&amp;#41;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Scale&amp;#58; 1.0 0.5 1.0&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Material&amp;#58; mat1&lt;br /&gt;&lt;br /&gt;Created sphere 'kugel2&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Radius&amp;#58; 1.0&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Center&amp;#58; &amp;#40;5.0/1.0/6.0&amp;#41;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Scale&amp;#58; 1.0 1.0 1.0&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Material&amp;#58; bam&lt;br /&gt;&lt;br /&gt;&amp;nbsp;--- &lt;br /&gt;&lt;br /&gt;Finished with creating scene within 137ms! Closing scene file...&lt;br /&gt;&lt;br /&gt;Starting to render...&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;weiterhin werden alle objekt transformationen in matrizen gespeichert. jedes objekt l&amp;auml;sst sich neben verschieben jetzt auch in jede richtung strecken und rotieren. zwar ist das noch ein wenig buggy, aber ich arbeite zur zeit heftig daran.&lt;br /&gt;&lt;br /&gt;ich m&amp;ouml;chte noch erw&amp;auml;hnen, dass ich den source bald, wenn das grundger&amp;uuml;st steht und ich ein wenig dokumentation geschrieben habe, ihn unter der GPL-Lizenz ver&amp;ouml;ffentlichen m&amp;ouml;chte und vielleicht hat ja dann der eine oder andere lust vlt einen shader zu coden oder iwie anders dabei einzusteigen. w&amp;uuml;rde mich zumindest freuen. bis dahin ist aber noch ein wenig arbeit f&amp;uuml;r mich zu schaffen.&lt;br /&gt;&lt;br /&gt;gr&amp;uuml;&amp;szlig;e darren&lt;br /&gt;&lt;br /&gt;PS: kommentare und vor allem kritik sind immer willkommen!</description>
			<pubDate>Mon, 25 May 2009 17:47:52 +0200</pubDate>
		</item>

		<item>
			<title>Planung geht immer weiter!</title>
			<link>https://www.blitzforum.de/worklogs/188/#1103</link>
			<guid>https://www.blitzforum.de/worklogs/188/#1103</guid>
			<author>Darren</author>
			<description>Guten Abend liebe Leser!&lt;br /&gt;&lt;br /&gt;Ersteinmal m&amp;ouml;chte ich mich f&amp;uuml;r das viele Feedback hier in den Kommentaren bedanken. Toll, dass ich alle mal mein etwas sinnfreies Programm trotzdem getestet habt. Dickes Lob an euch!&lt;br /&gt;&lt;br /&gt;Die Planung schreitet voran und hat mich dazu gebracht ein weiteres mal die Arbeit von neuem zu beginnen, aber diesmal VIEL geplanter, als selbst bei anlauf 2. Ich habe jetzt ein sehr modulares material-system entworfen, habe mir gedanken, &amp;uuml;ber das traceit!-datei-format gemacht.&lt;br /&gt;Ich hab vor ganz von Anfang an darauf zu setzen, dass man sich selbst dateien scripten kann, die dann gerendert werden. vielleicht hat ja dann jemand lust und schreibt einen exporter f&amp;uuml;r irgendein 3d-programm.&lt;br /&gt;&lt;br /&gt;Die grundstruktur des Raytracers habe ich mir auch noch einmal durch den kopf gehen lassen. Konkretes dazu gibt es vielleicht morgen abend. weiterhin habe ich matrizen fest mit eingeplant, welche dann vor allem wichtig werden, wenn es um polygonale objekte geht. denn eigentlich muss beim schnittpunkttest der strahl in die lokalen koordinaten des objektes transformiert werden. und der schnittpunkt muss schlie&amp;szlig;lich wieder zur&amp;uuml;cktransformiert werden. genauso mit der normale. man muss sich also f&amp;uuml;r jedes objekt eine transformationsmatrix speichern, sowie eine matrix f&amp;uuml;r die r&amp;uuml;cktransformation. das mathematische wissen hierf&amp;uuml;r muss ich mir aber noch aneignen. ich hab zwar das prinzip verstanden, aber bis ich das codem&amp;auml;&amp;szlig;ig umsetzen kann, muss ich es gedanklich noch ein wenig weiter durchdringen.&lt;br /&gt;&lt;br /&gt;ein weiteres primitive ist hinzugekommen! der W&amp;uuml;rfel. mit dem kann ich dann ausgiebig die Funktionalit&amp;auml;t meiner matrizen testen, denn vor allem rotationsabbildungen h&amp;auml;tte ich weder mit kugeln, noch mit ebenen testen k&amp;ouml;nnen.&lt;br /&gt;&lt;br /&gt;angefangen habe ich mit einer sehr grundlegenden mathe-bibliothek, die lediglich einen type definiert, den vektor und l&amp;auml;sst mich recht bequem und &amp;uuml;bersichtlich einige elementare vektor-rechnungen durchf&amp;uuml;hren. zwar ist es deutlich schneller solche operationen ohne types und direkt im code zu vollziehen, aber types sind in BB einfach meiner meinung nach der sinnvollste weg daten zu organisieren und zusammenzuhalten.&lt;br /&gt;&lt;br /&gt;Jetzt aber genug geblubbert. hier mal einige ergebnisse meiner planung:&lt;br /&gt;&lt;br /&gt;Vektor-Bibo:&lt;br /&gt;&lt;b&gt;Code: &lt;/b&gt;&lt;span style=&quot;font-size:0.8em; display:inline;&quot; id=&quot;showcodebox2&quot;&gt; &lt;a href=&quot;javascript&amp;#058;show_code('2')&quot;&gt;[AUSKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;font-size:0.8em; display:none;&quot; id=&quot;hidecodebox2&quot;&gt; &lt;a href=&quot;javascript&amp;#058;hide_code('2')&quot;&gt;[EINKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;div id=&quot;codebox2&quot; class=&quot;codebox&quot; style=&quot;max-height: 200px;&quot; onload=&quot;check_code('2');&quot;&gt;&lt;br /&gt;;math.bb&lt;br /&gt;Type vec&lt;br /&gt;&amp;nbsp; &amp;nbsp;Field x#&amp;#91;2&amp;#93;&lt;br /&gt;End Type&lt;br /&gt;&lt;br /&gt;Function vec_scale&amp;#40;k#,a.vec&amp;#41;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;a\x&amp;#91;0&amp;#93; = k * a\x&amp;#91;0&amp;#93;&lt;br /&gt;&amp;nbsp; &amp;nbsp;a\x&amp;#91;1&amp;#93; = k * a\x&amp;#91;1&amp;#93;&lt;br /&gt;&amp;nbsp; &amp;nbsp;a\x&amp;#91;2&amp;#93; = k * a\x&amp;#91;2&amp;#93;&amp;nbsp; &amp;nbsp;&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Function vec_length#&amp;#40;a.vec&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Local length#&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;length = a\x&amp;#91;0&amp;#93;^2 + a\x&amp;#91;1&amp;#93;^2 + a\x&amp;#91;2&amp;#93;^2&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;length = Sqr&amp;#40;length&amp;#41;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Return length&amp;nbsp; &amp;nbsp;&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Function vec_normalize.vec&amp;#40;a.vec&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Local faktor#&lt;br /&gt;&amp;nbsp; &amp;nbsp;faktor = 1/&amp;#40;vec_length&amp;#40;a.vec&amp;#41;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;a.vec = vec_scale&amp;#40;faktor,a.vec&amp;#41;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Return a.vec&amp;nbsp; &amp;nbsp;&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Function vec_scal_prod#&amp;#40;a.vec,b.vec&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Local scal_prod#&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;scal_prod =&amp;#40;a\x&amp;#91;0&amp;#93;*b\x&amp;#91;0&amp;#93;&amp;#41; + &amp;#40;a\x&amp;#91;1&amp;#93;*b\x&amp;#91;1&amp;#93;&amp;#41; + &amp;#40;a\x&amp;#91;2&amp;#93;*b\x&amp;#91;2&amp;#93;&amp;#41;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Return scal_prod&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Function vec_cross_prod.vec&amp;#40;a.vec,b.vec,c.vec&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;c\x&amp;#91;0&amp;#93; = a\x&amp;#91;1&amp;#93;*b\x&amp;#91;2&amp;#93; - a\x&amp;#91;2&amp;#93;*b\x&amp;#91;1&amp;#93;&lt;br /&gt;&amp;nbsp; &amp;nbsp;c\x&amp;#91;1&amp;#93; = a\x&amp;#91;2&amp;#93;*b\x&amp;#91;0&amp;#93; - a\x&amp;#91;0&amp;#93;*b\x&amp;#91;2&amp;#93;&lt;br /&gt;&amp;nbsp; &amp;nbsp;c\x&amp;#91;2&amp;#93; = a\x&amp;#91;0&amp;#93;*b\x&amp;#91;1&amp;#93; - a\x&amp;#91;1&amp;#93;*b\x&amp;#91;0&amp;#93;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Return c.vec&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Function vec_print$&amp;#40;a.vec&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Local komps$ = &amp;quot;&amp;#40;&amp;quot; + a\x&amp;#91;0&amp;#93; + &amp;quot;|&amp;quot; + a\x&amp;#91;1&amp;#93; + &amp;quot;|&amp;quot; + a\x&amp;#91;2&amp;#93; + &amp;quot;&amp;#41;&amp;quot;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Return komps&lt;br /&gt;End Function&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;hier ein grober entwurf eines shaders:&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://dl.getdropbox.com/u/416097/shader.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Aufbau des Szenenformates&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://dl.getdropbox.com/u/416097/scenefile_l.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://dl.getdropbox.com/u/416097/scenefile_sd.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://dl.getdropbox.com/u/416097/scenefile_o.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://dl.getdropbox.com/u/416097/scenefile_m.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So long Leute! Kommentare sind wie immer erw&amp;uuml;nscht. genauso wie fragen das thema betreffend!</description>
			<pubDate>Sat, 07 Feb 2009 22:44:54 +0100</pubDate>
		</item>

		<item>
			<title>Genauere Planung geht voran</title>
			<link>https://www.blitzforum.de/worklogs/188/#1094</link>
			<guid>https://www.blitzforum.de/worklogs/188/#1094</guid>
			<author>Darren</author>
			<description>Guten Tag!&lt;br /&gt;&lt;br /&gt;Ich habe jetzt beschlossen die Schulzeit unter der Woche haupts&amp;auml;chlich der Planung mit Bleistift und Papier zu widmen. Dabei habe ich mir gedanken dar&amp;uuml;ber gemacht, wie ich am sinnvollsten alle Daten, die ben&amp;ouml;tigt werden um die Szene und alles was darin enthalten ist, zu beschreiben. &lt;br /&gt;&lt;br /&gt;Erst einmal habe ich das was wirklich sichtbar ist, in zwei bereiche eingeteilt: Objekte und Lichtquellen. Die Idee alles was in der Szene enthalten ist erst einmal unter einem vollkommen allgemeinen Objekt zusammenzufassen schien mir doch ein wenig zu &amp;uuml;bertrieben und zu viel des guten. &lt;br /&gt;&lt;br /&gt;Doch da ich keine lust habe, alles hier in Wort zu fassen, habe ich mit Freemind mal schnell zwei mindmaps gemacht. Die eine versucht mir einen groben eindruck davon zu ermitteln, was alels in die szene geh&amp;ouml;rt und die andere erkl&amp;auml;rt den aufbau meines &amp;quot;materialsystems&amp;quot;. Das ist noch ziemlich rudiment&amp;auml;r, kann aber durch die getrennte handhabung von shadern und Material selbst sehr gut erweitert werden.&lt;br /&gt;&lt;br /&gt;Hier die Mindmap f&amp;uuml;r die Szenen-Struktur:&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://dl.getdropbox.com/u/416097/szene.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hier die Mindmap des material-systems:&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://dl.getdropbox.com/u/416097/Types.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Allgemein muss ich sagen, dass dieses Programm sehr n&amp;uuml;tzlich ist, wenn man seine ganzen Ideen organisieren will. Ich kann es nur jedem empfehlen es sich einmal zu besorgen und die paar Minuten zur einarbeitung aufzubringen. es lohnt sehr!&lt;br /&gt;&lt;br /&gt;Desweiteren, habe ich mal eine To-Do-List angefertigt, die ich von oben nach unten abarbeiten will. die eintr&amp;auml;ge sind ale nach priorit&amp;auml;t geordnet:&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Strahl-Qader-Schnittpunkt-Algo&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Nebel&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Transformationsmatrizen f&amp;uuml;r Objekte&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Material- und Shadersystem&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Sperical-Texture-Mapping&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Bumpmapping&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Fl&amp;auml;chenlichtquellen&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Distributed Raytracing(Fl&amp;auml;chenschatten, Depth Of Field)&lt;br /&gt;&lt;br /&gt;Sodele, jetzt hab ich mir aber echt sehr viel M&amp;uuml;he f&amp;uuml;r diesen Eintrag hier gegeben. Kommentare sind immer erw&amp;uuml;nscht!</description>
			<pubDate>Mon, 02 Feb 2009 16:56:32 +0100</pubDate>
		</item>

		<item>
			<title>Bugfixes und Speedups!</title>
			<link>https://www.blitzforum.de/worklogs/188/#1090</link>
			<guid>https://www.blitzforum.de/worklogs/188/#1090</guid>
			<author>Darren</author>
			<description>Guten Abend!&lt;br /&gt;&lt;br /&gt;Es gibt diesmal keine neuen Features zu melden, sondern nur ein paar sinnlose bugfixes und speedups.&lt;br /&gt;&lt;br /&gt;einen bug kann man hier sehen, mit einem vorher/nacher vergleich:&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://dl.getdropbox.com/u/416097/render3088912.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;weiterhin, habe ich mal eine exe kompiliert, bei der man aufl&amp;ouml;sung des bilder eingeben kann. Dann werden 10 Kugeln zuf&amp;auml;llig erstellt und gerendert.&lt;br /&gt;&lt;br /&gt;Vielleicht k&amp;ouml;nntet ihr ja mal aufl&amp;ouml;sung+renderzeit+prozessor posten?&lt;br /&gt;&lt;br /&gt;hier der DL:&lt;br /&gt;&lt;a href=&quot;http://dl.getdropbox.com/u/416097/main.exe&quot; target=&quot;_blank&quot;&gt;http://dl.getdropbox.com/u/416097/main.exe&lt;/a&gt;&lt;br /&gt;(wie immer vorsichtig. es kann immernoch zu abst&amp;uuml;rzen kommen, also bitte keine ungespeicherten docs offen haben!)</description>
			<pubDate>Sun, 01 Feb 2009 21:23:34 +0100</pubDate>
		</item>

		<item>
			<title>kompletter rewrite</title>
			<link>https://www.blitzforum.de/worklogs/188/#1085</link>
			<guid>https://www.blitzforum.de/worklogs/188/#1085</guid>
			<author>Darren</author>
			<description>so hallo leute!&lt;br /&gt;&lt;br /&gt;ich habe mich die letzte woche damit befasst, meinen raytracer nochmal komplett neu zu schreiben. jetzt funktioniert auch die iteration und somit is jetzt der weg frei f&amp;uuml;r reflexion und transmission. folgende features gibt es jetzt:&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Zwei primitives (kugel, ebene)&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; kameramodell: beliebiges vertikales field of view, beliebige aufl&amp;ouml;sung&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; diffuse reflexion(lambertsches gesetz)&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; specular (nach phong)&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; raytraced shadows(harte schatten) &lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; reflexion (fresnel ist noch geplant)&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; ambientlight&lt;br /&gt;&lt;br /&gt;hier nochn screen:&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://dl.getdropbox.com/u/416097/Screenshot-4.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;</description>
			<pubDate>Fri, 30 Jan 2009 20:00:36 +0100</pubDate>
		</item>

		<item>
			<title>Projektplanung!</title>
			<link>https://www.blitzforum.de/worklogs/188/#1076</link>
			<guid>https://www.blitzforum.de/worklogs/188/#1076</guid>
			<author>Darren</author>
			<description>Wie schon im WIP erw&amp;auml;hnt, habe ich mich f&amp;uuml;r meine Facharbeit (Abiturient in Bayern - Kniet nieder!) mit den grundlegenden Algorithmen des Raytracings befasst. Mein aktueller Kenntnisstand betr&amp;auml;gt ungef&amp;auml;hr das Wissen der Forschung aus dem Jahre 1960/70 als Raytracing zum ersten mal vorgestellt wurde, aber aufgrund von mangelnder Rechenleistung nicht weiter erforscht.&lt;br /&gt;&lt;br /&gt;Damals gab es bereits Ans&amp;auml;tze f&amp;uuml;r das Iterative Vorgehen, um Ph&amp;auml;nomene wie Reflexionen oder Transmissionen darstellen zu k&amp;ouml;nnen.&lt;br /&gt;&lt;br /&gt;Um nicht nur bei der Theorie h&amp;auml;ngen zu bleiben, habe ich beschlossen einmal ein Projekt zu beginnen, das zum Ziel hat einen m&amp;ouml;glichst stabilen raytracer zu entwickeln. dabei geht es mir erst einmal nicht um speed, sondern um eine saubere umsetzung der algos in BB. Wahrscheinlich ist Blitz Basic nicht die richtige Sprache f&amp;uuml;r einen wirklich umfangreichen und schnellen Raytracer, doch es geht mir eh nicht darum irgendeinem anderen Projekt der Art konkurenz zu machen, sondern ich interessiere mich einfach f&amp;uuml;r die methoden die hinter einem meiner hobbies stecken.&lt;br /&gt;&lt;br /&gt;Ich hab jetzt erst einmal mit der Planung angefangen, um mir eine grobe Struktur des Raytracers zu verdeutlichen. dazu habe ich mal freemind verwendet, und bin zu folgendem ergebnis gekommen:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://dl.getdropbox.com/u/416097/struktur.html&quot; target=&quot;_blank&quot;&gt;http://dl.getdropbox.com/u/416097/struktur.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wer sich meine Facharbeit zu dem Thema ansehen will, kann das hier mittels PDF machen:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://dl.getdropbox.com/u/416097/fa_final.pdf&quot; target=&quot;_blank&quot;&gt;http://dl.getdropbox.com/u/416097/fa_final.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Im zuge meines ersten posts, m&amp;ouml;chte ich auch bekannt geben, dass ich vor habe den ganzen code immer offen zu halten, unter der GPL-Lizenz. Jeder kann dann den code nehmen und gem&amp;auml;&amp;szlig; der GPL-Lizenz damit umgehen. Ich werde mich aber dahingehend noch informieren.&lt;br /&gt;Weiterhin m&amp;ouml;chte ich hiermit verlauten lassen, dass ich gerne bereit bin ein kleines team zu gr&amp;uuml;nden, um mehrere helfende finger und k&amp;ouml;pfe dabei zu haben. wer will kann sich zu jedem zeitpunkt in das projekt einklinken und genauso einfach wieder ausklinken. ich bin sicher nicht perfekt was meinen code-stil und meine geistigen f&amp;auml;higkeiten angeht, deshalb bin ich f&amp;uuml;r jede hilfe dankbar.&lt;br /&gt;&lt;br /&gt;doch es ist ein projekt, das ich schon immer einmal beginnen wollte. jetzt ist die zeit gekommen, und ich werde sicher nicht aufgeben. zumindest nicht kurz- oder mittelfristig!&lt;br /&gt;&lt;br /&gt;danke f&amp;uuml;r eure aufmerksamkeit erst einmal!</description>
			<pubDate>Tue, 27 Jan 2009 22:23:32 +0100</pubDate>
		</item>


	</channel>
</rss>
