From BlenderWiki

Jump to: navigation, search

An quick exert about me from Blender Conference 2008 + updates:

Dalai Felinto, who is currently living in Rio de Janeiro, Brazil, has been using Blender since the beginning of his graduate study in Architecture and Urban Studies back in 2003. His participation in the Blender Community includes a paper and a tutorial presented at the 2007 Blender Pro Brazil in Porto Alegre, an image published in a Blender magazine in Brazil, co-hosting of the first Vancouver Blender Workshop in 2008, a work presented with Mike Pan at the 2008 Blender Conference in Amsterdam, two talks at the 2009 Che Blender in Córdoba, Argentina and a number of contributions to Blender code since 2.47.

His past professional experiences with Blender includes the implementation of a dome rendering mode for the Blender Game Engine sponsored by the art school SAT: Society for Arts and Technology of Montreal in 2009, a 3 month job experience as game developer and technical artist for the Entertainment Arts Research's production of a third person action thriller game (Twilight22) and a two month production as a digital artist for the Fisheries Center at the University of British Columbia, Canada, for a 7 minute long digital documentary about the life in Chesapeake Bay.

He's currently involved with a marine ecosystem visualization project at the University of British Columbia in Canada using and developing the Blender Game Engine as an interactive tool. www.lenfestoceanfutures.org

http://blenderecia.orgfree.com

[edit] Dome Offline Rendering Thoughts

Thoughts on dome offline rendering

The render pipeline is likely to be changed a little by Brecht in the upcoming months. Nothing drastic but he'll probably move functions around to make the code more organized.

  • ) I don't know how much that would interfere with that. According to Brecht not so much, but this is hard to tell now.

We thought about 2 solutions:

a) to render two cylindrical panoramic and process then individually. They would contain all the scene pixel information. Cylindrical Panoramic images can be treated as regular images for effects such as blur, glare, ...

b) to render a cube map and the have a lookup method to use the pixels in spherical space (instead of the image space]. e.g. if you want a circular radial blur you will have a elliptical radial blur in cubemap space more deformed in the square corners I would assume we could even have cubemap images generated with FOV (field of view) bigger than 90º and if we have the circular origin in the seam between the cube images we do need a lookup method

  • ) in the end of the workflow, for both methods, we would need warping nodes to convert cubemap to different dome formats (small detail: including for spherical mirror)
  • ) I would like to see b way more than a. Indeed Paul Bourke thinks that Cube Map should be the standard format for fulldomes instead of fisheye fisheye means a lot of precision loss, right? fisheye means you have a problem if your dome is not exactly 180º cubemap is more "neutral".

"the pixel to screen ratio in fisheye is less constant accross the screen than with cubemap, no? hmm I wouldn't know that out of the top of my head but P.Bourke strongly advices for the cubemap :p"

  • ) Brecht told me that the actual convolution (blur, glare, ...) pixel lookup code is not unified. Every function tend to implement its own lookup code. Since we would need our own lookup codes, we (whoever code it or Brecth) may need to organize that first.

"that would help with overflow too how to deal with borders and all extend, mirror, constant color, ..."

[edit] Complement SDNA

  • Notes about pointers

When adding pointers as structure elements there is one more step you need to do. All pointers are stored in the Blender files with their original address. When the file is loaded, Blender needs to readdress the pointer to the new address of the element. This happens in the readfile.c.

Therefore there is three functions you may need to change to set your pointer. As an example if you want to add an actuator (they are part of the object global list), you you need to edit the readfile.c in three parts:

  • In expand_object() do a expand_doit()
  • In lib_link_object() you do a newlibadr_us()
  • In direct_link_object() ???????

And in writefile.c you will need to write the structure for your pointer. Find the right write_function (eg write_actuators) and call properly writestruct();

For more information check the Blender Architecture.

[edit] Blender Conference Architecture Round Table Minute draft

Right now I will write here the minutes of the Blender for Architecture Round Table (This still is a rough, I will clean this later)

Milanov – Architecture

How we can improve Blender to “make the 1st 3D Open Source application”. -a tool not only for presentation, but a project tool

-3d sketchs from the beggining. -sections

Precision (more than 32 bits float precision) Repetition / modules

[Blender -a // playback animation] - curiosity, off-topic but awesome

Offset / trim / extend cross sections Shell

IGES – Nurbs format

FEATURES / ISSUES: -exporter

DXF – Drawing Exchange Format fbx nurbs formats (??) [.x3d .DAE (Collada)] - my addition

Photo matching system (e.g. SketchUp PhotoMatch)

-measuring, summed length values -uvmap, extending the current UV system for simple tasks as paint an UV based in the neighbor faces). -snapping(thanks theeth), more snaps(e.g. center, ...) -precision – render merging problems (when the distance is too small for some distances it results in imprevisible results).


APPENDIX 01 – CAD Commands: (These are my personal list of most required cad commands. I created it to provide a feature request list to the project Archimedes).

It's interesting to see that the only commands Blender can't do were cited in the roundtable. They are: Offset, Distance, Fillet, Trim, Extend.


List:

_____line _____circle =====offset _____polyline _____move _____copy _____mirror _____rotate _____scale _____explode _____match properties _____block _____break =====distance _____scale _____divide =====fillet =====trim =====extend _____arc _____stretch


_____boundary (bo) _____align (al) _____draworder (dr) _____pedit (pe) _____write block (w) _____insert raster image _____paperspace

[edit] BGE develop meeting notes

Blender Conference 2008 - 01 – Blender Game Engine future

Blender Game Engine Web Plugin

The web plugin was abandoned since 200????. Recently in this year we have some developers trying to ressucite it to the most diferent platforms. Until now the new plugin is working only for unix systems.


- no bad level calls in 2.50 rewrite


The trend (in Apricot) is to implement all Blender features (Constraints, Drivers, …) in BGE. However there is no budget, no payed BGE developer. Things are changing though.


game engine as a plugin?

Tree data and memory managed to Blender interface converted to BGE objects. This is fine when BGE owrk inside Blender. However outside Blender it doesn't work fine (pointers present risk in memory assignment).

BGE use part of Blender code (IPO, Bone structure) licensing is an issue. Option: separate the data and the code. The game can be released as a blendfile cryptografed and the Game Player (i.e. BlenderPlayer).

WebPlugin Blender Game Engine.

security problem. Python problems. Differences of security levels/issues in network applications or local ones. It is not desired to associate Blender name with the risk of insecure web applications. It is needed a company willing to support the plugin development to stick on that.

SandBoxing issues Blender sand boxing bad python calls

A company should show progress: - Huge companies: Google, Nvidia, IBM - documentation - support maintaince / bugs, features, … It is a lot of work for the company and for the Blender Foundation. Reviewing patches developed for third parts isn't so easy (or exciting)

ISSUES: trusty, cappacity rely