Separator




vineri, 23 septembrie 2016

Dynamic Draw - vector graphics editor.

This software is a vector graphics editor and can be found it here.
Working with instalation and portable version under Windows OS.
It is an object-oriented drawing and design program and is for making flowcharts, line drawings, org charts, buttons, etc.

It has intelligent linking system by using the keys T and V ( or will select your arrow line with another key from tool menu).
It can export the graphics image as SVG, JPG, TIFF, PNG, EMF, WMF, PSD, BMP.

It supports OLE and that help you to copy objects and paste on other applications as OLE.The official website come with just one prepared a demonstration movie (see here).

marți, 20 septembrie 2016

Mandelbrot with three.js .

The Mandelbrot set is the set of complex numbers c for which the function f c ( z ) = z 2 + c . - wikipedia.org

You need to download the three.js - java script from threejs webpage.
The source code is simple. Come with default HTML5 page and javascripts.
One part of this will make vertex-shader and fragment shader, both is 2D shader type.
You need the canvas tag with id="canv".
The last part of source code is make to put all into one image processing by shaders.
You can read this tutorial here.

 <!DOCTYPE html>  
 <html>  
 <head>  
 <meta charset="UTF-8">  
 <title>Title of the document</title>  
 <script src="three.js"></script>  
 </head>  
 <body>  
   
 <canvas id="canv" width="640" height="480"></canvas>  
   
 <script id="2d-vertex-shader" type="x-shader/x-vertex">  
 attribute vec2 a_position;  
  void main() {  
   gl_Position = vec4(a_position, 0, 1);  
  }  
 </script>  
   
 <script id="2d-fragment-shader" type="x-shader/x-fragment">  
  #ifdef GL_FRAGMENT_PRECISION_HIGH  
   precision highp float;  
  #else  
   precision mediump float;  
  #endif  
  #define PI 3.14159  
   
 float hash( float n ) { return fract(sin(n)*753.5453123); }  
   
 #define NUM_STEPS  50  
  #define ZOOM_FACTOR 2.0  
  #define X_OFFSET  0.5  
   
  #ifdef GL_FRAGMENT_PRECISION_HIGH  
   precision highp float;  
  #else  
   precision mediump float;  
  #endif  
  precision mediump int;  
   
  void main() {  
   vec2 z;  
   float x,y;  
   int steps;  
   float normalizedX = (gl_FragCoord.x - 320.0) / 640.0 * ZOOM_FACTOR *  
             (640.0 / 480.0) - X_OFFSET;  
   float normalizedY = (gl_FragCoord.y - 240.0) / 480.0 * ZOOM_FACTOR;  
   
   z.x = normalizedX;  
   z.y = normalizedY;  
   
   for (int i=0;i<NUM_STEPS;i++) {  
   
   steps = i;  
   
     x = (z.x * z.x - z.y * z.y) + normalizedX;  
     y = (z.y * z.x + z.x * z.y) + normalizedY;  
   
     if((x * x + y * y) > 4.0) {  
      break;  
     }  
   
     z.x = x;  
     z.y = y;  
   
   }  
   
   if (steps == NUM_STEPS-1) {  
    gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);  
   } else {  
    gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);  
   }  
  }  
 </script>  
 <script type="text/javascript">  
 var gl;  
 var canvas;  
 var buffer;  
  window.onload = init;  
    
  function init() {  
    
   
   canvas    = document.getElementById('canv');  
   gl      = canvas.getContext('experimental-webgl');  
   canvas.width = 640;  
   canvas.height = 480;  
    
   gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);  
   
 var shaderScript;  
 var shaderSource;  
 var vertexShader;  
 var fragmentShader;  
   
  buffer = gl.createBuffer();  
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);  
  gl.bufferData(  
   gl.ARRAY_BUFFER,   
   new Float32Array([  
    -1.0, -1.0,   
     1.0, -1.0,   
    -1.0, 1.0,   
    -1.0, 1.0,   
     1.0, -1.0,   
     1.0, 1.0]),   
   gl.STATIC_DRAW  
  );  
   
   render();  
    
  }  
    
 function render() {  
    
   window.requestAnimationFrame(render, canvas);  
    
   gl.clearColor(1.0, 0.0, 0.0, 1.0);  
   gl.clear(gl.COLOR_BUFFER_BIT);  
   
  shaderScript = document.getElementById("2d-vertex-shader");  
  shaderSource = shaderScript.text;  
  vertexShader = gl.createShader(gl.VERTEX_SHADER);  
  gl.shaderSource(vertexShader, shaderSource);  
  gl.compileShader(vertexShader);  
   
  shaderScript  = document.getElementById("2d-fragment-shader");  
  shaderSource  = shaderScript.text;  
  fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);  
  gl.shaderSource(fragmentShader, shaderSource);  
  gl.compileShader(fragmentShader);  
   
  program = gl.createProgram();  
  gl.attachShader(program, vertexShader);  
  gl.attachShader(program, fragmentShader);  
  gl.linkProgram(program);   
  gl.useProgram(program);  
  positionLocation = gl.getAttribLocation(program, "a_position");  
  gl.enableVertexAttribArray(positionLocation);  
  gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);  
   
  gl.drawArrays(gl.TRIANGLES, 0, 6);  
  }  
 </script>  
 </body>  
 </html>   

duminică, 18 septembrie 2016

News about Blender second release candidate and other projects.

The Chairman Blender Foundation and producer Blender Institute, Mr. Ton Roosendaal comw with this news about second release candidate and other projects:
Hi everyone,

Here are notes from today's 14 UTC meeting in irc.freenode.net 
#blendercoders.

1) Blender 2.78 RC2

- Second release candidate is out! 
http://download.blender.org/release/Blender2.78/

- Release logs are also taking shape:
https://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.78
https://www.blender.org/features/2-78/

Based on tracker reporting and further testing we either do a RC3 or 
the actual release this week. Sergey Sharybin and Bastien Montagne are
 monitoring it closely.

2) Other projects and 2.8

- Currently Blender for OSX links to an Apple system library for 
quicktime (qtkit).
This has been deprecated for long, and will be removed from 
XCode 10.12.
We have to decide if we want to drop this, and make Blender for 
OS X use ffmpg for 
all codecs.

- Julian Eisel uploaded custom manipulators patch for review 
https://developer.blender.org/D2232
Code docs
https://wiki.blender.org/index.php?title=User:Julianeisel/Custom_Manipulators

- Mike Erwin is in Amsterdam, with Dalai Felinto and others 
he will do design sessions
on the 2.8 viewport. Expect interesting logs and docs!

Thanks,

-Ton-

joi, 15 septembrie 2016

The 8 bits game and development.



Today I will told you about the old and new 8 bits game and development.
Even now some people want to recreation of the 1980s personal compute bluetooth - zx spectrum
Most users who use a computer remember the old 8-bit computers or were linked to them.
I will start to present to you some of the most important web pages useful this topic:
ZX_Spectrum - wikipedia
ZX Basic stable version
Speccy - emulator multiplatform Z80 cross-assembler
TommyGun IDE and lots of utilities
TommyGun - source code
TommyGun - wikipedia
Guide to inline assembly using Boriel’s ZX compiler to create zx spectrum code.
I install ZX_Spectrum into my project path C:\Proiecte\8bits\ZX-Basic\.

I create one folder named SpeccyEmulator and I unzip the emulator Speccy.
The TommyGun IDE install C:\Proiecte\8bits\TommyGun.AGD from here.
I start the IDE with a new project.
The old TommyGun come with some errors when to try to reopen project and with more projects.
This is not bad, just you need to start it for each project and make settings each time.
The  TommyGu.AGD is more good but I don't make all the tests. This has just one project AgdGAmeEngine.asm with agd files.
The next step is tab Code - Build Settings - Compilation - I used pasmo.exe .

Under Code - Build Settings - Emulation I set the path to emulator: C:\Proiecte\8bits\SpeccyEmulator\Speccy.exe .

Also you can see the Presets can be edit and save it (Pasmo, Speccy).
NOTE: About ZX settings then under Code you need to load the files from ZX-Basic project.
If you want to use the basic language then you need to set this zxb.exe for .bas type file and the content will be the basic language (ex: C:\Proiecte\8bits\ZX-Basic\examples\clock.bas). The name of this file will need to put into Compilation (ex: clock.bas) and Emulation (ex clock.tzx).