View topic - My point of view on YafaRay development

My point of view on YafaRay development

Ask here your questions about development and about raytracing theory & implementation. Here you can post your patches for review.

My point of view on YafaRay development

Post Sat Feb 11, 2017 12:10 pm

Hello,

First of all, I apologize for having been mostly absent from the forums for a long time. My normal job has been intense lately and the little free time & energy I had left had to be split between family, YafaRay development and helping a bit with the problems we experienced with the YafaRay site in the last months, which I think are solved now.

So, I want to say a few things about things that come up from time to time in some forums and give you my personal point of view about them. As usual, I can be mistaken in some of the things I'm writing here, but I want to take them out of my chest.


* Is YafaRay website outdated / buggy?

The YafaRay website is indeed using a very old design. We are aware we need to update it, but any possible website update paths are either *very* complex and time consuming or would require to give up on all the existing information and start from scratch. So, for now, I think that keeping all the data and information stored in the forums, bugtracker, gallery, etc, is more important than updating the design, at least for the time being. However, we are still exploring potential ways of updating the website (and keeping its contents as much as possible), and I'm actively involved in that.

On the other side (especially now that the server problems are solved) as a positive point I have to say the YafaRay website is fast, quite fast compared with many modern-looking websites that just take ages to load in the browsers due to huge amounts of javascript, etc.


* Is YafaRay a dead project, abandoned by its users?

It looks indeed like many users have been migrating from YafaRay to other renderers over the last months and years, and I can understand as there are now many alternatives with different features, many of them free and open source. And that's the beauty of Open Source in the first place, giving the users the power to decide what they want and be able to influence on the projects and even contribute to them.

It's true that our resources are *very* limited. It's true that YafaRay features are also very limited when compared to other renderers, but I don't think YafaRay is dead. I'm working on YafaRay because in the past I tried several open source renderers and every time I came back to YafaRay despite its many limitations. I believe that YafaRay, even as it is now, can still offer features that other renderers cannot. And even if it could not provide features other renderers can, I still think it's a worthwile project in itself that provides users with another valuable alternative if needed.


* Will GPU processing be implemented in YafaRay?

I cannot see the future, but I would say no. The reasons are:

- Requires a full rewrite, pretty much like creating a new renderer almost from scratch. Is it worth it? There are already many renderers doing GPU processing and the amount of work and troubleshooting involved would require resources orders of magnitude higher than we have now.

- Requires to have several combinations of Operating Systems, drivers, PC hardware/processors, Graphics cards. We cannot afford all that.

- It's a crazy mess of drivers (nVidia, AMD), each card and drivers with their own problems and limitations, etc..

Eventually I believe it would be a huge effort that would put on hold any other development for a very long time. And eventually it would be disappointing for users anyway... At least that's what I think.

[ ---- continues in the next post ---- ]
Last edited by David Bluecame on Sat Feb 11, 2017 12:13 pm, edited 1 time in total.
User avatar
David Bluecame
 
Posts: 401
Joined: Mon Jan 21, 2013 12:42 pm
Location: Spain

Re: My point of view on YafaRay development

Post Sat Feb 11, 2017 12:11 pm

[ ---- continues from the previous post ---- ]

* What about SSS?

Yes, SSS and a general material review is in my radar. It will be *difficult* as new integration algorithms will need to be developed, etc. I know, we are slow in developing all this and keeping our promises, but we can do what we can do. In any case, it's my personal intention to make SSS happen in YafaRay.


* What happens with Bidirectional Pathtracing? Why is it deprecated?

Well, I agree it would be great to have a good BiDir algorithm. Unfortunately the one implemented in YafaRay does many weird things, and it just does not work correctly in my opinion.

Trying to really fix it could be very time consuming and possibly require a full rewrite of the BiDir algorithm, which is too much for us at the moment. I marked it as deprecated to avoid users to rely on it and become disappointed with the results, but I didn't remove it just in case somebody still finds it useful for some cases.


* And realtime preview, what about it?

As samo said, unfortunately Blender Python interface is limited, and even if it can be done with a lot of work, there is a second important problem: YafaRay does a lot of pre-processing (Python interface is slow and our KdTree generation is unfortunately not multithread at the moment), so if you try the preview, any refresh would be so unbearably slow that it's better not to have it at all.

That's why I developed the preview controls so you can check material behavior in a relatively quick manner. I know that does not help with setting up a scene, but going for realtime preview is really about re-writing large parts of fundamental stuff which is out of my abilities and resources at this moment. I agree this is a long-term objective that we should aim for, but I mean long term.


* Why are you working on "Feature X" when you should be working on "Feature Y"?

Excellent question, I fully understand that. Everybody needs something different so it's difficult to decide what to work on. I usually try to follow open issues in the bug tracker or some comments from users in the forum, etc.

I normally try to solve problems first, bugs, etc, especially if they affect the quality or accuracy of the results. I also try to add first the features that require the least possible amount of time and effort in my part. The reason is simple: it helps a lot to see things happening and working, instead of being marooned for months in an impossible mission just to get desperate at the end and send everything to hell.

Sometimes I come up with ideas of my own that I personally would like to implement in the software, or features that can make a difference respect to other renderers with a reasonable amount of time and effort.

Of course, sometimes I've miscalculated the scale of a certain project and I ended up working on something for a much longer time than anticipated, or having to make changes much more fundamental in the code than I expected. But that's life, anyway...

Finally, I have to admit my own ignorance. There are some matters as materials, shaders and integrators I still don't feel confortable with. So, part of the delays in developing a new improved material system is simply that I have to spend time learning: how does YafaRay work internally, what's the math involved with shaders, what alternatives we have to implement shaders and better algorithms, how to code it all into YafaRay, how to integrate it in Blender node system, etc. So, a lot of learning before I can have confidence to change all the material system, but I'm slowly getting there.


* Why don't you just take/adapt code from software X?

YafaRay Core code has a LGPL v2 license. That means that we can only borrow code or use libraries from other software packages that have a license compatible with our LGPL v2. That really restricts our choices.



In addition to everything I've said above, there is another important matter: I still have a lot to learn a LOT about C++, python, including how to code correctly, how to code for performance, how to debug/profile, etc. I'm not a pro and I'm learning on the go in my scarce free time. This learning process is also something that makes YafaRay development attractive to me, as it's a good way to improve both YafaRay and my own coding skills at the same time.

I know that users will probably not care about all this (no reason why they should) but just wanted all of you to understand what's the current situation and the likelyhood of several user's expectations to happen or not. Of course, I have no idea what will happen to YafaRay in the future (perhaps we will have other developers, or people helping with the project in different ways?), I can only talk about what's going on at this point in time.

I still believe on this project, and I also intend to improve collaboration with other projects, for example I will try to:

* Improve build scripts and provide some examples, so other people can build YafaRay themselves relatively easily. You can already see example build instructions in the GitHub Core page. Those instructions are only valid for the upcoming v3.2.0 or higher, as the current v3.1.1 is using scripts that weren't too great. By doing this I hope in the future some distro maintainers can build YafaRay packages again and include recent versions in the distros as opposed to the current ancient YafaRay packages that can be found nowadays.

* Generate standalone builds again, starting in the next upcoming v3.2.0 version.

* Have a better Wings3D plugin soon for YafaRay v3.2.0 and higher, based on the existing one that is really outdated. It will not be as complete as the Blender Exporter but it should be much better than the current YafaRay plugin for Wings3D. I've been working in this intermittently for months and we have interesting improvements in place already, but I have to give it an extra push now.

* Have plugins for current Sketchup versions. The plugins will be based on the existing code from Exvion, but updating it so it works with the upcoming YafaRay v3.2.0. I expect it will be quite basic, with only very basic features, but at least it should work in a basic way with Sketchup.

I hope this helps somehow. Best regards!
User avatar
David Bluecame
 
Posts: 401
Joined: Mon Jan 21, 2013 12:42 pm
Location: Spain

Re: My point of view on YafaRay development

Post Sat Feb 11, 2017 1:26 pm

Thanks for the information, and for continuing to spend the time . . .

:)
User avatar
stoneage
 
Posts: 1232
Joined: Sun Dec 23, 2007 1:06 pm

Re: My point of view on YafaRay development

Post Sun Feb 12, 2017 8:35 pm

David,
Thanks for posting about your plans for YafaRay. I have said it before but will say again that I think it is great that you are working on Stand-alone builds. By not designing just for Blender, I think you will get more people interested in YafaRay. Also, thanks for taking over the development of the Wings3D YafaRay plug-in. What you have done so far is great.

As those who have seen my past posts know, I am a bit obsessed with SSS... :) So, I am very happy that is still on your list.

Thanks for all the time you spend on YafaRay. I know it is difficult to make time for hobbies when we have other things we want and need to do. Keep up the great work. I too am a big fan of YafaRay and I am happy to wait for any updates. I became a fan when it was YafRay and will remain a fan.

Thanks,
oort
oort
 
Posts: 219
Joined: Wed Jun 01, 2005 2:11 pm

Re: My point of view on YafaRay development

Post Mon Feb 13, 2017 8:19 am

I think we should not worry too much about the future and keep on doing work on YafaRay, I think the most important thing is that we have clear ideas about how we can improve YafaRay and the site experience. I hope this year we can document features which are not currently documented, particularly the passes system.
User avatar
Samo
 
Posts: 3067
Joined: Tue Dec 20, 2005 10:39 am
Location: Spain

Re: My point of view on YafaRay development

Post Tue Feb 14, 2017 4:16 pm

Hi everyone,

pardon me if this question is out of place.

I understand you're limited on resources, and the future of some potentially cool features is uncertain. Obviously one shouldn't expect more from a renderer which is a gift by itself, esp. considering the amazing job it's already doing.

But I just realised it's an open source program, and maybe I can make the changes I need myself. The idea is probably crazy since I don't know the first thing about CG programming, but...

So, the question is: does adding GGX shader mean implementing the math model from scratch, or is there some existing piece of code somewhere that just needs to be inserted and adapted to the Yafaray source?
maverick
 
Posts: 49
Joined: Fri Jan 13, 2017 10:43 am

Re: My point of view on YafaRay development

Post Tue Feb 14, 2017 6:13 pm

Hello,

My next steps will be materials, GGX, etc, so I will start studying how to implement this soon.
User avatar
David Bluecame
 
Posts: 401
Joined: Mon Jan 21, 2013 12:42 pm
Location: Spain

Re: My point of view on YafaRay development

Post Tue Feb 14, 2017 6:35 pm

Hi David,

I didn't mean to hurry you!

Actually I wouldn't mind to contribute, except I don't know where to start, i.e. I don't have even a general perception of how these things are done (which is maybe it was a bad idea). Quick search with google didn't help, I'll have to dig deeper.

Anyway, while we're on this subject, what do you think about adding a roughness control to the diffuse shader (diffuse material)? Now all objects with the diffuse mat behave like mirrors, which isn't the case in real life.

Hope I didn't sound too judgemental. As I said, personally I think Yafaray creators have done an amazing job.
maverick
 
Posts: 49
Joined: Fri Jan 13, 2017 10:43 am

Re: My point of view on YafaRay development

Post Tue Feb 14, 2017 6:38 pm

Hello,

Not at all, don't worry!! I appreciate your interest! :-)

It's just a matter of me myself having to learn how that works... About the roughness control, what kind of material do you want to emulate? Perhaps there is something we can do with the current version.
User avatar
David Bluecame
 
Posts: 401
Joined: Mon Jan 21, 2013 12:42 pm
Location: Spain

Re: My point of view on YafaRay development

Post Sat Feb 18, 2017 7:02 pm

Note: I've moved some posts from here about materials and PM to: http://www.yafaray.org/community/forum/ ... =23&t=5217
User avatar
David Bluecame
 
Posts: 401
Joined: Mon Jan 21, 2013 12:42 pm
Location: Spain


Return to Developers' Corner



Who is online

Users browsing this forum: No registered users and 3 guests