Blender Action 0.2

Registered by Stani on 2009-06-23

3d software box

Blueprint information

Status:
Not started
Approver:
Stani
Priority:
Medium
Drafter:
Stani
Direction:
Needs approval
Assignee:
None
Definition:
Approved
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

FIX:
- The issue has to do with arguments. It's probably missing "'s somewhere as the latter part does not get parsed
properly. (See bug Bug #458366)
- transparant background with transparent cd cover lid
- book: make it run
- book: both, left, right (field with other page)
- book other page: open with method which supports svg (see tamogen)
- renderings are too dark, should be lighter (right now images have to be fixed in Gimp)
- turn off reflection in lcd monitor
- scale down a bit, make sure no object clips by default if rotated (e.g. cd cover)
- run nadia test suite and check if there are no visual errors
- transparency with reflection
- user submitted models should get high priority for motivation
- Camera Distance should be a FloatSlider
- eliminate horizon in lcd screen due to reflection or transparency

OBJECTS TO ADD:
- bottles
http://www.katorlegaz.com/3d_models/household_dining/0112/index.php
http://www.katorlegaz.com/3d_models/household_dining/0113/index.php
http://www.katorlegaz.com/3d_models/household_dining/0114/index.php
http://www.katorlegaz.com/3d_models/household_dining/0115/index.php

- cars (texture on front cover and doors)
http://www.katorlegaz.com/3d_models/transport_auto/0185/index.php
http://www.katorlegaz.com/3d_models/transport_auto/0186/index.php
http://www.katorlegaz.com/3d_models/transport_auto/0187/index.php
http://www.katorlegaz.com/3d_models/transport_auto/0188/index.php
http://www.katorlegaz.com/3d_models/transport_auto/0189/index.php
http://resources.blogscopia.com/models/complements/seat_leon/seat_leon_en.html

- apple
apple imac http://www.katorlegaz.com/3d_models/electronics_computers/0060/index.php
apple ibook http://www.katorlegaz.com/3d_models/electronics_computers/0057/index.php
apple imac 2 http://www.katorlegaz.com/3d_models/electronics_computers/0059/index.php
http://resources.blogscopia.com/models/complements/apple_pc/apple_pc_en.html

- truck: http://resources.blogscopia.com/models/urbano/truck/truck_en.html
- other lcd http://free3dmodels.fleshsoft.eu/lcd_monitor.php
- tv http://resources.blogscopia.com/models/complements/tv_and_dvd/tv_and_dvd_en.html
- photo frame http://resources.blogscopia.com/models/complements/frames/frames_en.html

DONE:
- rotation
- reflection
- box color
- fix issue reported by Nadia with tiff/png (unknow format)
- make fit image the default
- I would choose a lower max for camera distance (instead of 20) -> changed to 10
- camera rotation should be 'Camera Horizontal Rotation' and 'Camera Vertical Rotation', 'Camera Roll' The Horizontal rotation should not default to zero but maybe to 30 degrees.
- camera rotation should not be a child of show camera options. The camera rotation checkbox should always be visible.
- there should be a global transparant checkbox, which if true should make both background and floor transparant and display the auto crop feature. It should be false by default. Right now you have to do too many clicks for a complete transparant background. Autocrop should be turned on by default if transparency is selected.
- fix stars and mist
- It's probably better to disable "scale model" in the case of CD.
- scale model, at least with just global scaling (without rigging if that is too much work). This is especially needed for the box -> initial version done, better to be done (with hooks?) later?
- remove self.render_path at the end
- run Nadia's script (I'm fixing it for windows atm) and fix any bugs. JV: Ran. Fixed an issue related to a regex (missed a case for lower case letters in color hex names).
- include credits of all file in blend files and in phatch/copyright
- add book -> is the existing book not usable, i really like its shape
- when changing an object image size should be adjusted if necessary (eg no scale model), not only the choices but also the value itself. I think in perspective action something similar is done with the presets.
JV: OK, I will look into it.
JV: I hacked around the selection issue. Better fix that later!
- add can (these scale well, so without extra options, just scale to 1x1x1 and that's it)
JV: I experimented with a can. The mapping is not totally problematic: 1. For it make any sense it's better to have it done per 180 degrees twice. -> that is ok as only 180 degrees are visible, than maybe I would disable horizontal rotation for the camera as it makes no sense
JV: Good point. On the other hand it is possible to rotate the can so that it faces the camera always (just track the can so that it points at the camera).
SM: I thought about it and I was wrong. The can is not a cylinder as the top is not symmetric. So horizontal rotation is still necessary. Would it be possible only to let the texture track the camera? That would be the best.
JV: There's no tracking whatsoever in the current version but it's probably adequate for now. If the texture is horizontally seamless the current solution is just fine.
- add sphere?
JV: I did some tests with sphere and mapping. I suppose the big question is ~when~ would you use a sphere model and for ~what~ purposes? I just need some concrete use case to get going with this one.
SM: Well very easy to render some balloons, footballs, rugby ball, beach ball, website buttons (e.g. for Rss feed), ...
- depth of box in preview must be bigger (for sure 20%, maybe 30%)
- - rotation presets (use generic cube object as a target and render based on that. Note that distance parameter might be somewhat problematic in this case!) -> This is *really* important for phatch 0.2 as it blows the usabality by factor 1000
- SM: update of rotation icons
- SM: update of other values
- refactor the camera options (see blender action source code)
- pay attention to the right choices
- book: image should be on right page, other page should be empty by default, NEVER USE <path> NOWHERE

TODO:
- first a not todo: DO NOT CREATE MORE PREVIEWS for every object (presets should only be based on hor & ver rotation)

- transfer the values of the presets to the specific fields (hor rot, ver rot, ...) so if user is chosen it reflects the last chosen preset
JV: I tried the solution used in the perspective action. It didn't work out. It seems the perspective update itself is broken! (Just select some other than user, swap back to user -> values have not changed.) No wonder I couldn't get it to work. :)

- first do small and easy things
- eg add truck, bottle, newspaper, usb-stick, ...
- make can more metallic

- wrapping: turn around the corner for box.
JV: Would it be possible to implement this using multiple textures instead? This would mean that the user interface would have extra fields for left/right side of the cube on which image could be provided. The behavior of the side textures would be set by "Image Size" of course. In this case "Scale model" probably has to scale "depth" (viewed from camera) according to max(left_side, right_side) instead of moving corner edges unevenly.
SM: No, my use case is that i want to wrap around the corner a folder of images for this, add text etc... When you do multitexture only one side can be manipulated by phatch, moreover you loose consistency. When it is one image, the height is the same.
JV: The point of using multiple textures is that in this case they are independent of each other resolution wise. You can slap two totally different images on the sides while it still should look good. I'm not sure if I'm seeing the issue with height yet. How do you decide where to wrap (which part of the texture belongs to the side and which to the front?)? I think this case is unambiguous should separate textures be used. Note that usage of side texture(s) may mean that it overrides the "thickness" of the box and figures out one based on given texture(s) as hinted earlier.
SM: My purpose was to add a library script which does the following:
- canvas action to add 50px to left of image
- draw text based on metadata rotated 90 degrees on the left part
- wrap it as a box
By convention the left is the side texture or you can provide a Wrapping Method field: None, Left, Right -> No ambiguity here.
This is really more a use case issue, not a technical one as it is very easy to code both options. So let's compromise without sacrifice ;-) ... and add a choice field:
- Side Image: Color, Wrap Left, Wrap Right, File
Voila, this is a clean solution which covers our both use case with the same field. If no Wrap is selected for the side (so eg color or file) you can even use the same for Top Image: Color, Wrap, File (Wrap bottom doesn't make sense so only one wrap)

- for objects which can change volume such as cd, I would prefer if they can be automatically centered in the camera view (can be a
boolean for camera options, turn it on by default). This means taking the bounding box and putting the center back to 0,0.
JV: Merged with "solve camera capturing bounding box" as it's the same problem really. Current status: -figure out how to get camera direction normal! (camera matrix to quat + quat.axis doesn't work for some reason... figure out why!)
-> if you can solve this for phatch 0.2 it is fine to consider it as the same usecase. If you can't I would prefer a quick hack as now the cd lid is unusable when turned more than 90 degrees.
JV: I will check how Pantograph (vector renderer) does it... perhaps I can borrow that code.

2. For image modes to work properly nice vertex group face adjancency has to be implemented (trivial, just check for the same edges) in order to figure out the width and height of the mapping in 3D space.

3. In both cases "scale model" doesn't probably make sense (exception: something along whisky bottle might even work).
For the bottle it makes sense for the can not. Scale model makes sense for primitive objects such as cylinder, sphere, ... As we get the primitives objects of blender for free we should use them. Also maybe a simple face as it will be more predictable to change as the perspective action.

- add bottles

- redo book

- more mapping modes for current objects? (get rid of the vgroup hack as much as possible (it's possible to figure out the orientation of the texture based on face structure! Just check if there's a proper access for UV layers and their faces.))

POSTPONED

v3 (post 0.20):
- primary goal: make it easier for the end-user to add new objects/scenes without having to hack the code of Phatch. This means that .blends should be as self contained as possible. They should contain a description of what features do they implement. Phatch should be able to construct the user interface needed based on this information. Furthermore it's essential that there are template .blends that can be used to get started. These .blends might contain a script that may help to generate the needed information to hook up the .blend with Phatch (ie. for UI and such).

- possibility to add alternative floors -> separate floor loading, add separate selector for this (see the generic idea above)

- separate world the same way as objects and floors? Or extend the current solution at least (provide a field for an optional angmap?).

- better previews (~automatic~ preview for each available object, floor, ...)

- add angmap
JV: I did some initial tests using can (reflective metal). To use it for reflections (ie. it doesn't alter background) it is essential that sky pass is disabled! This will make it invisible while still allowing it to affect the scene.
-> This is a refinement and therefore not necessary for 0.2

- the gray of the can looks more plastic (matte) than metalic (shiny)
JV: This requires proper environment to reflect + some gloss. Hack around something with angmaps perhaps...

v4 (jQuery UI?):
- real time preview for camera rotation/distance

- multiple objects per render? -> requires some way to translate objects on 2d space. Additionally better camera algorithms are needed so that it can be guaranteed that each object is visible on the render when distance is set to 1.0.

- make reflection work for transparant background and floor (probably requires more settings of world) JV: this requires a composite unless someone figures out how to handle it without. As Blender's API is a bit lacking on this department at the moment it might have to wait till 2.50?

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.