вторник, 30 июня 2009 г.
понедельник, 29 июня 2009 г.
DirectX + PhysX (English)
This is a lesson for English-speaking people and its just a copy of the same lesson on Russian language. First of all sorry for my bad English, but as I think, it is better to read this than text on Russian or text from Google translator.
I’ve wrote this translation in a cause of interest from other counties.
This lesson is about how to setup and work with PhysX with your DirectX based application and what problems you need to solve on this way. Also Ill give you information about how to create NxConvexMesh and NxTriangleMesh from DirectX mesh (.x) file data.
Introduction.
First of all read this. For this time everybody know physics engine named Nvidia PhysX (also Ageia PhysX some time ago), so Ill cut away briefing about it. One thing that you really need to understand PhysX is a free for you! But sources of it is not. If you don’t want to change PhysX core you can use it for free. All that you need is to insert some Nvidia logos in your product if it is commercial. More about licenses. Go here to download latest PhysX sdk.
About lesson.
There are some difficults for DirectX developers because there is no examples for DirectX in sdk (there is only one and bad example with dxut). Google can help you to find some few examples but they are for Ageia PhysX, and there are some troubles for newbie.
People in forums ofen answering like “Examples for DirectX and OpenGL are the same!”, but I say NO! They are wrong!)
What do you need? I am using MSVS C++ 2005 for coding, so you can try it too.
With what to start?
Try to run examples in sdk, to look how the magic makes -) Below you can see code of scene update.
RenderCallback() {
...
gScene-gt;simulate(1.0f/60.0f);
...
}
Simply order of it looks like: making of scene object, making of physic object, translate objects to scene, then calling update in step.
Problems. Matrices.
First of all some words about VRD Visual Remote Debugger (also there is better program PVD PhysX Visual Debuger). With this utillites you can catch bugs in your program “on fly” and manipulate PhysX objects. It is really cool.
In VRD you can find some diffuculties because its using RHCS Right Hand Coordinate System, but in DX we are using LHCS, don’t forget it!
How to transform NxMat34 to D3DXMATRIX ? Ive searched answer for a long time -) But its really simple:
//NxMat34 a;
a.getColumnMajor44( d3dMat );
And how to draw our graphic object at the right place, where PhysX object is? That’s simple too (if you know it!)):
//NxActor* object; LPD3DXMESH* g_pObjectMesh;
D3DXMATRIX d3dMat;
taburet_object-gt;getGlobalPose().getColumnMajor44( d3dMat );
g_pd3dDevice-gt;SetTransform( D3DTS_WORLD, amp;matWorld );
g_pObjectMesh-gt;DrawSubset(0);
On this screenshots something wrong with matrices -)
VRD and your program, look for differences! ^_^
Problems. Meshes..
How to create mesh from model file? For newbies it is very strong problem cause many of them don’t really know how its works, many of them using DirecX meshes to forget about buffersindexestriangles so do I -) Thanks to Chillypacman, from Nvidia forum for help in understanding how it works and functions that are really work!)
In example we will use type vector (из namespace std).
So the magic functions are:
1. Function for getting array of vertices from LPD3DXMESH
vectorlt;floatgt; GetVertices(LPD3DXMESH *g_pMesh )
{ vectorlt;floatgt; vertices; DWORD stride = D3DXGetFVFVertexSize((*g_pMesh)-gt;GetFVF()); BYTE* vbptr = NULL; (*g_pMesh)-gt;LockVertexBuffer(0, (LPVOID*)amp;vbptr); int ii = -1; for(int i = 0; i lt; (*g_pMesh)-gt;GetNumVertices(); i++) { ii++; D3DXVECTOR3* pos = (D3DXVECTOR3*)vbptr; vertices.push_back(pos-gt;x); vertices.push_back(pos-gt;y); vertices.push_back(pos-gt;z); vbptr += stride; } (*g_pMesh)-gt;UnlockVertexBuffer(); return vertices;
}
2. Function for getting array of indices:
vectorlt;shortgt; GetIndices(LPD3DXMESH *g_pMesh)
{ LPVOID * ppData; DWORD stride = sizeof(short); BYTE* ibptr = NULL; short* indices = new short[(*g_pMesh)-gt;GetNumFaces() * 3]; vectorlt;shortgt; copy; (*g_pMesh)-gt;LockIndexBuffer(0, (LPVOID*)amp;indices); for(int i = 0; i lt; (*g_pMesh)-gt;GetNumFaces() * 3; i++) { copy.push_back(indices[i]); } (*g_pMesh)-gt;UnlockIndexBuffer(); return copy;
}
Before we continue lets speak about what Triangle Mesh and Convex Mesh is.
First object used only for static geometry and you cane use it for walls in your engine, but you need to know that Nvidia advice is to avoid of using it, its better to use simple objects like box everywhere you can.
Second object type is simple rounded mesh with maximum of 256 vertices that can be used for both static and dynamic objects. Its can be generated automatically ore loaded from file formats like Collada.
Now we can return to magic functions:
2. Function for generation of NxTriangleMesh:
NxActor* GenTriangleMesh(NxVec3 pos, vectorlt;shortgt; indices, vectorlt;floatgt; vertices )
{ int NumVerticies = vertices.size() / 3; int NumTriangles = indices.size() / 3; //Create pointer for vertices NxVec3* verts = new NxVec3[NumVerticies]; int ii = -1; for(int i = 0; i lt; NumVerticies; i++) { ++ii; verts[i].x = vertices[ii]; verts[i].y = vertices[++ii]; verts[i].z = vertices[++ii]; } //Create pointer for indices NxU16 *tris = new NxU16[indices.size()]; for(int i = indices.size() - 1; i gt;= 0; i--) tris[i] = i; // Build physical model NxTriangleMeshDesc TriMeshDesc; TriMeshDesc.numVertices = NumVerticies; TriMeshDesc.numTriangles = NumTriangles; TriMeshDesc.pointStrideBytes = sizeof(NxVec3); TriMeshDesc.triangleStrideBytes = 3*sizeof(NxU16); TriMeshDesc.points = verts; TriMeshDesc.triangles = tris; TriMeshDesc.flags = NX_MF_16_BIT_INDICES ;//| NX_MF_FLIPNORMALS ; NxTriangleMeshShapeDesc ShapeDesc; NxInitCooking(); // Cooking from memory MemoryWriteBuffer buf; bool status = NxCookTriangleMesh(TriMeshDesc, buf); ShapeDesc.meshData = g_pPhysicsSDK-gt;createTriangleMesh(MemoryReadBuffer(buf.data)); NxActorDesc actorDesc; actorDesc.shapes.pushBack(amp;ShapeDesc); actorDesc.globalPose.t = pos; NxActor* act = g_pScene-gt;createActor(actorDesc); delete[] verts; delete[] tris; return act;
}
3. Function for generation of NxConvexMesh:
NxActor* GenConvexMesh(const NxVec3amp; pos, vectorlt;floatgt; vertices, const NxReal density)
{ int i = 0; NxActorDesc actorDesc; NxBodyDesc bodyDesc; int numVertices = vertices.size() / 3; NxVec3* verts = new NxVec3[numVertices]; int ii = -1; for(int i = 0; i lt; numVertices; i++) { ++ii; verts[i].x = vertices[ii]; verts[i].y = vertices[++ii]; verts[i].z = vertices[++ii]; } // Create descriptor for convex mesh NxConvexMeshDesc convexDesc; convexDesc.numVertices = numVertices; convexDesc.pointStrideBytes = sizeof(NxVec3); convexDesc.points = verts; convexDesc.flags = NX_CF_COMPUTE_CONVEX; NxActorDesc actorDesc; NxInitCooking(); MemoryWriteBuffer buf; bool status = NxCookConvexMesh(convexDesc, buf); NxConvexShapeDesc* convexShapeDesc = new NxConvexShapeDesc(); convexShapeDesc-gt;localPose.t = NxVec3(0,0,0); convexShapeDesc-gt;materialIndex = 0; convexShapeDesc-gt;meshData = g_pPhysicsSDK-gt;createConvexMesh(MemoryReadBuffer(buf.data)); actorDesc.shapes.pushBack(convexShapeDesc); NxBodyDesc bodyDesc; if(!stat) { actorDesc.body = amp;bodyDesc; actorDesc.density = 1; } else actorDesc.body = NULL; actorDesc.globalPose.t = NxVec3(0, 0, 0); actorDesc.name = "boo"; NxActor* actor = g_pScene-gt;createActor(actorDesc); return actor;
}
Looks like this functions are the most common searched functions.
Problems with Cooking.h and Stream.h
Those headers are using in PhysX examples, but they are in different versions, and there are same problems with them, so I am giving you header (CookingStream.h) modified by my friend ASD (asddev.3dn.ru), his file is a mix of those two files and works pretty good.
You can find it in archive to lesson.
Additional:
How to use VRD (or PVD) in your program? Its simple indeed, copy this code in header where your PhysX initializing:
#define SAMPLES_VRD_HOST "localhost"
#define SAMPLES_VRD_PORT NX_DBG_DEFAULT_PORT
#define SAMPLES_VRD_EVENTMASK NX_DBG_EVENTMASK_EVERYTHING
int gAppData;
void vrd_init()
{ NxRemoteDebugger* pRemDeb = g_pPhysicsSDK-getFoundationSDK().getRemoteDebugger(); pRemDeb-connect(SAMPLES_VRD_HOST, SAMPLES_VRD_PORT, SAMPLES_VRD_EVENTMASK); if (pRemDeb-isConnected()) { pRemDeb-createObject(gAppData, NX_DBG_OBJECTTYPE_GENERIC,"AppData", NX_DBG_EVENTMASK_EVERYTHING); pRemDeb-writeParameter("Info text", gAppData, true,"Info", NX_DBG_EVENTMASK_EVERYTHING); pRemDeb-createObject(gAppData+1, NX_DBG_OBJECTTYPE_VECTOR,"AVector", NX_DBG_EVENTMASK_EVERYTHING); pRemDeb-writeParameter(NxVec3(0, 0, 0), gAppData+1, true,"Origin", NX_DBG_EVENTMASK_EVERYTHING); pRemDeb-writeParameter(NxVec3(1, 1, 1), gAppData+1, true,"Extent", NX_DBG_EVENTMASK_EVERYTHING); pRemDeb-addChild(gAppData, gAppData+1, NX_DBG_EVENTMASK_EVERYTHING); // Tells our application that we have created the VRD object // and that it is ok to set information in it gAppData = 1; }
}
After PhysX initialization call vrd_init();. Now if you ran VRD before your program starts, your program will automatically be connected to VRD.
What is in the archive?
My sample based on example for Ageia NovodeX (first name of PhysX) from CodeSampler.com, there are few things that you need to change in their lesson:
1. from project properties you must remove Physics.lib. Also you need to copy PhysXLoader.lib,nxcooking.lib,NxCharacter.lib to project folder and too connect library’s use:
#pragma comment(lib, "physxloader.lib")
#pragma comment(lib, "nxcooking.lib")
#pragma comment(lib, "NxCharacter.lib")
2. In compilation you may see error in function initNovodeX() where you need to remove those lines:
sceneDesc.broadPhase = NX_BROADPHASE_COHERENT;
sceneDesc.collisionDetection = true;
So everything will run now!
Screenshot from my example.P.S.
So there is a point where my lesson ends -) Enjoy it!
Thanks to ASD and Chillypacman for their help again. You can also see Chillypacmans solution HERE
Thanks to Nvidia for free PhysX!
And… sorry for my bad English again)
Wow, and archive!! - dx9_novodex_simple_derivedbycrol
суббота, 27 июня 2009 г.
Morning Flat – Индикатор пробоя утреннего флэта.
Morning Flat Индикатор пробоя утреннего флэта в свободном доступе здесь.
Параметры:
StartHour час начала утреннего флэта
EndHour час окончания утреннего флэта
TargetLevel целевой уровень сетки Фибоначчи, взятый от ширины канала утреннего флэта
© ChartMaster
Posted in Обзор индикаторов
пятница, 26 июня 2009 г.
Введение.
Это сообщение появилось здесь, ибо я так захотел. Публиковаться тут будут мои сумасшедшие идей касательно рекламы и финансовой сферы. Это все для души, но если, кто заинтересуется моими разработками, то прошу на чашку чая и на подписание контракта.
Всем удачи. С уважением, Алекс.
среда, 24 июня 2009 г.
ПОСЛЕДНИЙ ДИКТОР РЕСПУБЛИКИ НЕМЦЕВ ПОВОЛЖЬЯ, Продолжение
«Федеративная Республика Германия, канцлер ФРГ,
Господину Якобу Шмалю, Башкортостан, Уфа, ул.Правды 34:
Многоуважаемый господин Шмаль!
Я получил книгу Ваших воспоминаний «Чаша выпита до дна», которую вы мне любезно прислали. Ваша книга – потрясающий документ, который дает впечатляющее описание судеб российских немцев в Советском Союзе, особенно в период сталинской диктатуры. Этим Вы внесли свой вклад в то, чтобы не померкла память о жертвах насилия и войны. Одновременно Ваша книга – проникновенная заключительная речь адвоката в защиту человечности и примирения между народами. Вы сами, несмотря на тяжелые удары судьбы, никогда не теряли своих убеждений. Я желаю Вам, чтобы Ваша честная позиция нашла заслуженную поддержку.
С пожеланиями радости и успеха в Вашем дальнейшем творчестве.
Гельмут Коль
Якоб Шмаль не дожил до своего 80-летия год, а тогда, когда я беседовала с ним в его берлинской квартире, ему было 77. Несмотря на груз лет, пять лагерей и две сложнейшие операции на сердце, этот человек с ясным, открытым взглядом голубых глаз не производил впечатления старого человека, напротив, он был очень бодрым и активным. Последний диктор Республики немцев Поволжья, журналист, писатель, а также вальщик леса, молотобоец, табельщик, возчик, сплавщик, нормировщик управления буровых работ, инженер, начальник отдела труда и зарплаты...
Он родился в 1923 году в селе Гримм на берегу Волги. Гримм, которому недавно исполнилось 240 лет, в начале 20-х годов был крупным (около 1000 дворов) поселком, как бы сейчас сказали городского типа – ухоженным и благополучным. В селе работали МТС, государственная мельница, четыре школы и даже завод «Рекорд», производивший станки и бытовую технику. Повальное раскулачивание и сильнейший голод в Поволжье в 1932-1933 годах привели к гибели сотен жителей поселка. Его население заметно поредело. Но вскоре, благодаря усердному труду и хозяйскому отношению к делу, Гримм поднялся на ноги. Село, как и Республика немцев Поволжья в целом, было оснащено передовой по тем временам сельскохозяйственной техникой, поэтому урожайность здесь была значительно выше, чем в соседних ненемецких хозяйствах.
Якоб учился в гриммской образцовой средней школе, широко известной своими традициями в республике. В ней преподавали замечательные педагоги – мастера своего дела, которые привили Якобу любовь к родному языку и литературе. Кстати, слушая его рассказы о своей жизни, я не могла не заметить, что почти каждый эпизод он иллюстрировал образцами из классической немецкой поэзии, особенно стихотворениями и балладами горячо любимого им Шиллера. Читал он совершенно свободно и по памяти. Как проникновенно и торжественно он декламировал: звонко, четко, в пружинящем ритме лились чеканные строки! «Конечно, - подумала я – чувствуется опыт диктора». Однако, дело не только в профессии, но и в большом чувстве, которое он пронес через всю свою жизнь, как и любовь к «малой родине» - Гримму, и которое помогло ему выстоять, не сломаться, выжить в тяжелые годы депортации, трудармии и спецпоселения.
В 11 лет Якоб лишился отца. Будучи старшим сыном в семье, начал работать на сельхозучастке, чтобы помочь матери растить младших детей. В десятом классе начал сотрудничать с газетами разных кантонов республики. В 1939 году был зачислен в штат редакции газеты «Большевик» в Энгельсе. «Я не был отличником, - вспоминал Шмаль, - но языком владел лучше всех в классе, как говорится, чувствовал родную речь. Учителя всегда отмечали мои сочинения». Может быть, именно поэтому, выдержав невероятно сложный конкурс, был принят в Радиокомитет Немецкой республики диктором. Было ему в ту пору чуть больше 16 лет. Работая в Энгельсе, начал осваивать русский язык. Мечтал стать артистом или дипломатом...
Война оборвала успешно начавшуюся карьеру. Осенью 1941 года Шмаля в числе первых депортировали в Сибирь. За день до этого он в последний раз вышел в эфир – с передачей о подвиге красноармейца Генриха Гофмана. Уроженец Поволжья Гофман попал в плен к фашистам и был ими зверски замучан. После этой передачи радиостанция Немецкой республики на Волге замолчала. Как выяснилось позже, навсегда.
Долгих десять дней состав с вагонами, предназначенными для перевозки скота, а теперь забитый до отказа людьми, тянулся на восток. По приезде в далекий Канск все 2338 человек, находившиеся в составе, были выброшены прямо на вокзале под открытое небо. Ночевать пришлось в парке под проливным дождем. А наутро начались торги: колхозники выбирали себе дармовую рабочую силу. Естественно, брали те семьи, где было много молодых и крепких рук, малодетные семьи и пожилые люди ждали решения своей участи до позднего вечера. Несмотря на унизительную процедуру «работорговли», Шмаль сохранил теплое чувство к людям, приютившим вынужденных переселенцев в колхозе «Красное озерко». Деревенька поразила своей ужасающей бедностью. Тем не менее, все ее жители отнеслись к немцам столь радушно, что их сердца начали оттаивать. Пока сооружали себе какое-то подобие жилища на опушке леса, Шмаль, примкнув в пути к одной из семей земляков, жил вместе с ними у одной супружеской пары. «Сын хозяев воевал на фронте с немцами, фашистами, врагами, а они относились к нам, немцам-квартирантам по-человечески, с уважением и сочуствием. Никогда не забуду этих гостеприимных, добрых людей!» – говорил Шмаль.
вторник, 23 июня 2009 г.
воскресенье, 21 июня 2009 г.
суббота, 20 июня 2009 г.
Дамплинчики с креветками по-праздничному
состав:
- креветки
- репчатый лук
- стебли сельдерея
- соль, перец
- мука
- яйца
- вода
- соль
приготовление:
Готовим тесто из муки, яиц, воды и соли. Хорошо вымешиваем и отставляем.
Займёмся фаршем: очищенные креветки измельчаем в блендере или мясорубке, добавляем в фарш измельчённый лук и стебли сельдерея. Солим, перчим и хорошо вымешиваем.
Затем тесто раскатываем и выдавливаем кружочки.
Каждый кружочек складываем так, чтобы получился треугольник:
Переворачиваем треугольничек и кладём на него фарш. Стягиваем кончики треугольника и защипываем края (либо как обычные вареники, а либо верёвочкой, как на фото ) Расправляем воротничок вокруг шва. Получается вот такой дамплинчик
Так же делаем и другие дамплинчики
Затем укладываем дамплинчики в пароварку ( желательно под каждый дамплинчик положить тонююсенький кусочек огурчика или морковки или листик салата или для того, чтобы не прилипли)
Готовим на пару до готовности. Получается мммммммммм вкуснотища
Posted in Китай, Кухни мира Tagged: дамплины, китайская кухня, пельмени, шао-май
четверг, 18 июня 2009 г.
среда, 17 июня 2009 г.
вторник, 16 июня 2009 г.
воскресенье, 14 июня 2009 г.
Bell Labs сворачивают фундаментальные исследования
По информации журналов Nature и Wired, легендарный исследовательский центр Bell Labs в скором времени радикальным образом сократит фундаментальные исследования в области материаловедения и физики полупроводников — в тех самых направлениях, что подарили миру такие открытия, как транзистор, лазер и ряд других, за которые 11 учёных центра были удостоены шести Нобелевских премий.
Материнская компания Alcatel-Lucent, переживающая сейчас далеко не лучший свой период, существенно урезает финансирование центра по тем проектам, которые не могут принести ей быструю коммерческую выгоду. Следствием такого положения дел стало сворачивание практически всех фундаментальных исследований, которые велись на базе Bell Labs с 30-х годов прошлого века. Фактически все задействованные в этих проектах сотрудники были вынуждены либо подыскать себе более надёжное место работы за пределами центра, либо перейти в другие его отделы, которые занимаются теми или иными прикладными проектами. После всех кадровых сокращений, растянувшихся на несколько лет, в отделе фундаментальных физических исследований центра в настоящий момент осталось всего четыре человека.
Перепрофилирование научных проектов в русле приоритетных для материнской компании направлений полностью соответствует инновационной модели развития исследований, недавно принятой в Alcatel-Lucent, утверждает представитель этой компании Питер Бенедикт.
Однако инсайдеры рангом пониже не разделяют его уверенность и оптимистичный настрой. Владимир Аксюк, бывший сотрудник Bell Labs, ныне работающий в статусе приглашённого профессора в Национальном институте стандартов и технологий в Гэйзерсбурге, штат Мэриленд считает, что «компания попросту больше не может поддерживать исследовательские проекты. Пройдитесь по центру — и вы увидите совершенно пустые комнаты». «Почти все учёные ушли», — вторит ему Дик Слашер, другой бывший сотрудник Bell Labs, перешедший в Технологический институт в Атланте, штат Джорджия.
Сторонние эксперты также весьма критично отнеслись к известию о сворачивании основного массива фундаментальных исследований в этом крупнейшем центре науки, который более полувека служил ориентиром для учёных со всего мира. Такой шаг они оценили как «недальновидный», который ещё радикальным образом скажется на способности компании Alcatel-Lucent к созданию действительно инновационных разработок.
«Фундаментальная физика чрезвычайно важна для компьютерных технологий, — говорит Майк Лубелл, глава пресс-службы Американского физического общества. — Скажем, к открытию интегральных микросхем подвели бесчисленные маленькие достижения, годами накапливаемые в области физики».
Научный центр Bell Labs оставался одним из последних бастионов, где фундаментальные исследования поддерживались на уровне больших корпорации. Как известно, в последние десятилетия крупные компании стали фокусироваться на сугубо прикладных НИР и НИОКР в тех областях, в которых можно рассчитывать на быструю прибыль.
Bell Labs (Bell Laboratories, прежние названия — ATT Bell Laboratories, Bell Telephone Laboratories) — крупный исследовательский центр в области телекоммуникаций, электронных и компьютерных систем. Создан в 1925 как исследовательский центр компании ATT. В 1995 году Bell Labs выкупила компания Lucent Technologies, которую в 2006 году приобрела французская Alcatel. В настоящее время является исследовательским центром корпорации Alcatel-Lucent.
Среди сотрудников этого известного исследовательского центра — одиннадцать лауреатов Нобелевской премии. За время существования Bell Labs было получено более 27 000 патентов. Из наиболее известных открытий: транзистор (1947), радар, стереозапись, звуковое кино, передача телепрограммы на дальние расстояния, спутники связи и лазеры, солнечные элементы, операционная система Unix, языки программирования Си и С++, интеллектуальная сеть, ИКМ-аппаратура для передачи высококачественных аудио- и видеоданных (1948), сотовая телефония (1971), широкополосная коммутация пакетов и многое другое.
суббота, 13 июня 2009 г.
Олег Майоров и его “Дом Человеческого Духа”
Он не из мейнстрима, по крайней мере, не из современного человеческого Рисовать его увлечение и способ самореализации. Нечастые выставки устраивают ему собратья по Йоге, ведь они оценивают творчество по излучаемым вибрациям, а не кассовым сборам. Вот и сейчас, примчался в Харьков на открытие, рассказывал истории, связанные с каждой из картин, общался, дарил себя вместе со своим творчеством (фото здесь). Прошу любить и жаловать, приглашать в гости, проводить выставки (все на общественных началах)! Картинки кликабельны почти все!
Олег Майоров, художник-график. Излюбленный инструмент цветные карандаши. Стиль символизм. Тема Дом Человеческого Духа. С его слов о себе:
День рождения
Крайний Север, самый-самый Крайний Север Земли, где человек имеет редкостную возможность частенько бывать один на один с Мирозданием, а, значит, и с самим собой. Вот там я и произвёлся на Божий свет под первые хрустальные аккорды «Wish You Were Here» Pink Floyd, под ореолом лунной радуги, малахитовым сиянием ионосферы и блеском неподвижного алмаза, венчающего незримую ось Планеты – Полярной звездой, размещённой в тех местах прямёхонько над макушкой, в которой, судя по всему, и отразилось её таинственное свечение, разбудив моё осознание себя и окружавшей меня действительности.
Дом и Зима
Творчество суть одухотворение материи, т.е. усердное старание проявить в ней единственный смысл её существования – Высшее Духовное Начало; стремление выразить в своём однообразно-переменчивом бренном быте своё неизменно-многообразное вечное Бытие. Цель творчества – бессмертие Личности, проявившей свой неуничтожимый Дух – энергию, которая, как известно, ниоткуда не берётся и никуда не девается – настолько, чтобы не разложиться в прах вместе с плотью, не утратить осознание своего реального Я после неизбежной потери всех я мнимых.
Дом и Весна
Виды, жанры, сюжеты, техники главной роли в этом святом деле не играют. Чтобы являть Высшее Духовное Начало маловато уметь, более всего необходимо иметь иметь право и возможность этим заниматься. Право и возможность, предоставленные Им, Высшим Началом, через установленную с Ним связь. Попыток изобрести способ таковую связь наладить история знает немало, и, по меньшей мере, одна из них, наконец-то, удалась. В чём вашему покорному слуге и посчастливилось как-то раз убедиться слава Всевышнему, никакой мистики и уж тем более мистификации, всё благопристойно, доступно, бескорыстно и действенно, т.е. так, как и должно быть в непридуманных отношениях с непридуманным Богом.
Дом и Лето(дом странствующего голубя)
И всё, что необходимо для успешного подключения – большое искреннее желание стать абонентом. Если вы его уже почувствовали, удовлетворяйте немедленно! Поверьте, это намерение самое благородное и невинное из всех, какие только доводилось вам выражать за всю вашу сколь угодно долгую и перенасыщенную событиями жизнь. Такое же невинное и благородное, как желание этому намерению посодействовать. А посему, всегда к вашим услугам! С уважением, О. Майоров, Тольятти.
Катюшкин дом
Рисунки Олега Майорова в основном выполнены цветными карандашами на бумаге. В них часто земное переплетается с космическим. К примеру, тщательно прорисованные одуванчики постепенно превращаются в космическую пыль – отсюда название картины «Галактика».
БОЖИИ ОДУВАНЧИКИ
В своих работах художник делает акцент на детство, сказочность. Много у Олега Майорова портретов Нирмалы Шриваставы, являющейся родоначальницей учения «Сахаджа Йога». Светлана ЗАЦЕПИНА, 21.08.2006, www.SAMARA.ru
КОМНАТА